Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Minecraft Server Admin Guide

Welcome to this guide! This book aims to provide a full guide into setting up and maintaining a Minecraft Java edition server!

Hopefully this can help make setting up your server a little bit easier. Feel free to share this with your staff members as a guide on how to use plugins!

What does this book aim to do?

With this book I aim to provide full documentation for setting up and using as many of the popular plugins as possible.

Not only do I explain how to set everything up, but also all the commands you need to know to use all of the features of the plugins.

Format of this book

Each top-level (root) chapter is dedicated to a certain plugin or concept. All pages of this chapter will fully document everything you need to know about that concept.

Plugin chapters

Chapters which are dedicated to a certain plugin usually have at least these pages:

Server software

There are a lot of different Minecraft server softwares. The two I'd recommend are:

  • Purpur, based on Paper - compatible with all Bukkit plugins and very well optimised.
  • Fabric, for fully vanilla behaviour and loading Fabric mods, but Fabric is not as well optimised.

This guide mainly focuses on Purpur. Almost all information in this guide will also be compatible with regular Paper and likely Bukkit/Spigot - perhaps with the exception of certain optimisation guides.

Installing plugins

In this guide, I mostly document the manual way of installing plugins: uploading the plugins .jar file to your server's plugins folder.

If you're using a hosting provider, your game panel should provide a way to easily install plugins. Instead of directly adding the jar file to your server, you are welcome to install the plugin through a Plugins tab if you would rather.

Plugin repositories

The two places I'd recommend installing plugins from are:

You can also find plugins at SpigotMC, however try to find the plugin on Modrinth or Hangar first.

Good starting permissions

One page you will notice comes up in almost every plugin chapter is the Good starting permissions page.

Every plugin defines permissions that determine who can access which commands. Using a plugin called LuckPerms, we can give different groups of people access to different commands. See the LuckPerms chapter for help on adding permissions to groups, users, etc.

For each plugin you install, if you want to restrict or give access to its commands, you need to set up the permissions for it. Each chapter has a page which outlines some good permissions you should give to three groups: default, moderator and admin.

Default permissions

Default permissions are those permissions that are given to every player on your server.

Any permissions under this section should be given to your default group. You should run this command for every PERMISSION in the list:

/lp group default permission set PERMISSION

Moderator permissions

Moderator permissions are those permissions given to your mods: moderators usually teleport around the server in spectator, catching cheaters and rolling back any griefing that occurs.
They do not deal with plugin issues or any other server-side issue; that's reserved for admins.

Any permissions under this section should be given to your moderator group. You should run this command for every PERMISSION in the list:

/lp group moderator permission set PERMISSION

Admin permissions

Admin permissions are those permissions given to your admins: admins generally do what mods do, and so your admin group should inherit from your moderator group.
Admins do more than that, though: they also deal with configuring plugins, server configuration and anything else regarding the server itself. So admins need more permissions than moderators.

Any permissions under this section should be given to your admin group. You should run this command for every PERMISSION in the list:

/lp group admin permission set PERMISSION

Topics

This book is under heavy development and so many things will be added in the future.

Current plugins documented:

Plugin documentation currently being written:

LuckPerms

LuckPerms allows you to create groups for players and give them certain permissions.

Why is this useful compared to just using /op? Opped players have every permission, and you might not want to give all players full access to every command.

What can you do with LuckPerms?

LuckPerms allows you give certain groups of people specific permissions. For example, you could have a Moderator role who could switch gamemodes, teleport to other players and ban people, but would not have full OP.

LuckPerms installation

You can install LuckPerms like any other plugin: download the plugin jar and place it into your server's plugins folder.

https://modrinth.com/plugin/luckperms

Setup

Once installed, you shouldn't need to change anything about LuckPerm's config unless you need a custom use case, for example, connecting to a custom database.

LuckPerms is fully configured using the /lp command and the web editor.

LuckPerms groups

A luckperm 'group' is essentially like a rank. Players can be in multiple groups at once, and they will gain permissions from all groups they are in.

Groups can also inherit (extend) from other groups. For example, you could have an Admin group which inherits from the Moderator group, meaning admins would have all the permissions moderators had, plus any extra that only admins have.

What can groups do?

  • Give players permissions to use certain commands
  • Give players prefixes and suffixes

Managing server groups

Creating a group

You can create a group using this command:

/lp creategroup <groupName>

Deleting a group

To delete a group, use:

/lp deletegroup <group>

List all groups

/lp listgroups

Adding a player to a group

/lp user <player> parent add <group>

Note that we use parent add here instead of parent set: that's because you usually want to keep somebody's existing groups, but just add another. If you want to delete all groups from a player and just have the new one, use parent set instead.

Group inheritance

If you want one group to take all permissions from another (and then possibly add some) run this command:

/lp group <group> parent set <parentGroup>

For example, to make the admin group inherit from the moderator group:

/lp group admin parent set moderator

You should always inherit from at least one group (which itself will inherit from the default group). If a group doesn't have a logical parent, you should instead make it inherit from the default group.

Setting group weight

Each group has a weight. When LuckPerms decides what permission it has, it will prioritise the permissions of higher-weighted groups.

For example, if the moderator group specifically prevents access to the /tp command but the admin group allows it, if admin has a higher weight, then players with admin will have that permission, as admin takes priority over moderator.

You can set a group's weight like this:

/lp group <group> setweight <weight>

... where <weight> is a number.

LuckPerms player permissions

You can set permissions for either a group or an individual player.

Permissions determine which commands a player has access to. There are generally separate permissions for each command, giving you a lot of control over what commands they can access.

Note: it's usually better to add permissions to groups rather than players, but if you only want to give a permission to a single person, you can just use player permissions.

Adding a permission to a player

To add a permission from a player, use this command:

/lp user <player> permission set <permission> true

Luckperms will infer you want to set the permission to true, so you don't have to type the true:

/lp user <player> permission set <permission>

Using our example above, we can give the teleport permission to user Minecraft123 like this:

/lp user Minecraft123 permission set minecraft.command.teleport

Removing a permission from a player

To remove a permission from a player, use this command:

/lp user <player> permission unset <permission>

Using our example above, we can remove the teleport permission from Minecraft123 like this:

/lp user Minecraft123 permission unset minecraft.command.teleport

Explicit false player permissions

Some commands are available to everyone by default, even if they are not an operator.

For example, the /plugins command is available to everyone by default on Bukkit servers, but you might not want this.

To explicitly block a command, use:

/lp user <player> permission set <permission> false

For example, to block Minecraft123 from using /plugins, you can use:

/lp user Minecraft123 permission set minecraft.command.plugins false

Querying player permissions

If you want to know what permissions a player has, use this command:

/lp user <player> info

For example, to check all of Minecraft123's permissions, type:

/lp user Minecraft123 info

Adding temporary permissions

You can set a permission for a player, but only for a certain amount of time, using this syntax:

/lp user <player> permission settemp <permission> <true/false> <duration>

For example, to give Minecraft123 permission to use the /ban command but only for two days:

/lp user Minecraft123 permission settemp minecraft.command.ban true 2d

Or, to prevent them from using the /tell command for 5 minutes:

/lp user Minecraft123 permission settemp minecraft.command.tell false 5m

Removing permissions temporarily

You can temporarily remove a permission for a player (for only a certain amount of time) using this syntax:

/lp user <player> permission unsettemp <permission> <duration>

For example, to remove Minecraft123's permission to use the /ban command but only for two hours:

/lp user Minecraft123 permission unsettemp minecraft.command.ban 2h

LuckPerms group permissions

You can set permissions for either a group or an individual player.

Permissions determine which commands a player has access to. There are generally separate permissions for each command, giving you a lot of control over what commands they can access.

Note: it's usually better to add permissions to groups rather than players, but if you only want to give a permission to a single person, you can just use player permissions

Note: to set a permission for all players, you should set permissions for the default group.

Giving a permission to a group

To give a permission to a group, use this command:

/lp group <group> permission set <permission> true

You don't actually need to add the true at the end, so this would also be fine:

/lp group <group> permission set <permission>

For example, we could give permission to the /tp command to a group called Moderator like this:

/lp group Moderator permission set minecraft.command.teleport true

Removing a permission from a group

To remove a permission from a group, use this command:

/lp group <group> permission unset <permission>

Using our example above, we can remove the teleport permission from Moderator like this:

/lp group Moderator permission unset minecraft.command.teleport

Explicit false permissions

Some commands are available to everyone by default, even if they are not an operator.

For example, the /plugins command is available to everyone by default on Bukkit servers, but you might not want this.

To explicitly block a command, use:

/lp group <group> permission set <permission> false

For example, to block Moderator from using /plugins, you can use:

/lp group Moderator permission set minecraft.command.plugins false

Getting information about permissions

If you want to know what permissions a group has, use this command:

/lp group <group> info

For example, to check all of Moderator's permissions, type:

/lp group Moderator info

Setting permissions temporarily

You can set a permission for a group, but only for a certain amount of time, using this syntax:

/lp group <group> permission settemp <permission> <true/false> <duration>

For example, to give Moderator permission to use the /ban command but only for two days:

/lp group Moderator permission settemp minecraft.command.ban true 2d

Or, to prevent them from using the /tell command for 5 minutes:

/lp group Moderator permission settemp minecraft.command.tell false 5m

Unsetting permissions temporarily

You can temporarily remove a permission for a group (for only a certain amount of time) using this syntax:

/lp group <group> permission unsettemp <permission> <duration>

For example, to remove Moderators' permission to use the /ban command but only for two hours:

/lp group Moderator permission unsettemp minecraft.command.ban 2h

Adding a permission to a group

To add a permission from a group, use this command:

/lp group <group> permission set <permission> true

Luckperms will infer you want to set the permission to true, so you don't have to type the true:

/lp group <group> permission set <permission>

Using our example above, we can give the teleport permission to group moderator like this:

/lp group moderator permission set minecraft.command.teleport

Removing a permission from a group

To remove a permission from a group, use this command:

/lp group <group> permission unset <permission>

Using our example above, we can remove the teleport permission from Moderator like this:

/lp group Moderator permission unset minecraft.command.teleport

Explicit false group permissions

Some commands are available to everyone by default, even if they are not an operator.

For example, the /plugins command is available to everyone by default on Bukkit servers, but you might not want this.

To explicitly block a command, use:

/lp group <group> permission set <permission> false

For example, to block Moderator from using /plugins, you can use:

/lp group Moderator permission set minecraft.command.plugins false

Querying group permissions

If you want to know what permissions a group has, use this command:

/lp group <group> info

For example, to check all of Moderator's permissions, type:

/lp group Moderator info

Adding temporary permissions

You can set a permission for a group, but only for a certain amount of time, using this syntax:

/lp group <group> permission settemp <permission> <true/false> <duration>

For example, to give Moderator permission to use the /ban command but only for two days:

/lp group Moderator permission settemp minecraft.command.ban true 2d

Or, to prevent them from using the /tell command for 5 minutes:

/lp group Moderator permission settemp minecraft.command.tell false 5m

Removing permissions temporarily

You can temporarily remove a permission for a group (for only a certain amount of time) using this syntax:

/lp group <group> permission unsettemp <permission> <duration>

For example, to remove Moderator's permission to use the /ban command but only for two hours:

/lp group Moderator permission unsettemp minecraft.command.ban 2h

User prefixes

LuckPerms allows you to manage prefixes and suffixes for users. You can also set prefixes for all users in a group - see the page for group prefixes and suffixes.

Note: you will need a plugin such as TAB in order to display prefixes in chat and tablist.

Prefix priority

  • Each prefix and suffix has a weight, or priority - players and groups can have multiple prefixes and suffixes, and LuckPerms will use whatever prefix and suffix has the highest weight!

Setting a prefix for a user

/lp user <player> meta setprefix <weight> <prefix>

For example, to give the user Minecraft123 the [Builder] prefix with a weight of 40, you would use:

/lp user Minecraft123 meta setprefix 40 "[Builder] "

The space after [Builder] is important here, as otherwise there would be no gap between the prefix and the main name.

Removing a prefix from a player

To remove a prefix, you remove the prefixes at a specific weight:

/lp user <player> meta removeprefix <weight>

For example, to remove prefixes from Minecraft123 with a weight (priority) of 40:

/lp user Minecraft123 meta removeprefix 40

Setting a prefix temporarily

Just like how you can temporarily add a user to a group, you can also set a temporary prefix:

/lp user <player> meta settempprefix <weight> <prefix> <duration>

For example, to temporarily set the [Helper] prefix for the Minecraft123 player at priority 60 for 3 days:

/lp user Minecraft123 meta settempprefix 60 "[Helper] " 3d

User suffixes

LuckPerms allows you to manage suffixes for users. You can also set suffixes for all users in a group - see the page for group suffixes.

Note: you will need a plugin such as TAB in order to display suffixes in chat and tablist.

Suffix priority

  • Each suffix has a weight, or priority - players and groups can have multiple suffixes, and LuckPerms will use whatever suffix has the highest weight!

Setting a suffix for a user

/lp user <player> meta setsuffix <weight> <suffix>

For example, to give the user Minecraft123 the [Builder] suffix with a weight of 40, you would use:

/lp user Minecraft123 meta setsuffix 40 " [Builder]"

The space before [Builder] is important here, as otherwise there would be no gap between the username and the suffix.

Removing a suffix from a player

To remove a suffix, you remove the suffixes at a specific weight:

/lp user <player> meta removesuffix <weight>

For example, to remove suffixes from Minecraft123 with a weight (priority) of 40:

/lp user Minecraft123 meta removesuffix 40

Setting a suffix temporarily

Just like how you can temporarily add a user to a group, you can also set a temporary suffix:

/lp user <player> meta settempsuffix <weight> <suffix> <duration>

For example, to temporarily set the [Helper] suffix for the Minecraft123 player at priority 60 for 3 days:

/lp user Minecraft123 meta settempsuffix 60 "[Helper] " 3d

Group prefixes

LuckPerms allows you to manage prefixes and suffixes for groups. You can also set prefixes for specific players - see this page for more info: player prefixes.

Note: you will need a plugin such as TAB in order to display prefixes in chat and tablist.

Prefix priority

  • Each prefix and suffix has a weight, or priority - groups and groups can have multiple prefixes and suffixes, and LuckPerms will use whatever prefix and suffix has the highest weight!

Setting a prefix for a group

/lp group <group> meta setprefix <weight> <prefix>

For example, to give the group Moderator the [Mod] prefix with a weight of 40, you would use:

/lp group Moderator meta setprefix 40 "[Mod] "

The space after [Mod] is important here, as otherwise there would be no gap between the prefix and the main name.

Removing a prefix from a group

To remove a prefix, you remove the prefixes at a specific weight:

/lp group <group> meta removeprefix <weight>

For example, to remove prefixes from Moderator with a weight (priority) of 40:

/lp group Moderator meta removeprefix 40

Setting a prefix temporarily

Just like how you can temporarily add a group to a group, you can also set a temporary prefix:

/lp group <group> meta settempprefix <weight> <prefix> <duration>

For example, to temporarily set the [Moderator] prefix for the Moderator group at priority 60 for 3 days:

/lp group Moderator meta settempprefix 60 "[Moderator] " 3d

Group suffixes

LuckPerms allows you to manage prefixes and suffixes for groups. You can also set suffixes for specific players - see this page for more info: player suffixes.

Note: you will need a plugin such as TAB in order to display suffixes in chat and tablist.

Suffix priority

  • Each suffix and suffix has a weight, or priority - players and groups can have multiple suffixes and suffixes, and LuckPerms will use whatever suffix and suffix has the highest weight!

Setting a suffix for a group

/lp group <group> meta setsuffix <weight> <suffix>

For example, to give the group Moderator the [Mod] suffix with a weight of 40, you would use:

/lp group Moderator meta setsuffix 40 " [Mod]"

The space after [Mod] is important here, as otherwise there would be no gap between the suffix and the main name.

Removing a suffix from a group

To remove a suffix, you remove the suffixes at a specific weight:

/lp group <group> meta removesuffix <weight>

For example, to remove suffixes from Moderator with a weight (priority) of 40:

/lp group Moderator meta removesuffix 40

Setting a suffix temporarily

Just like how you can temporarily add a group to a group, you can also set a temporary suffix:

/lp group <group> meta settempsuffix <weight> <suffix> <duration>

For example, to temporarily set the [Moderator] suffix for the Moderator group at priority 60 for 3 days:

/lp group Moderator meta settempsuffix 60 " [Moderator]" 3d

Good starting permissions

You can manage who can use luckperms, using luckperms! Basically, that means you can use luckperms to give certain groups access to use certain luckperms commands.

This page will, in the future, contain a list of good defaults for permissions to set in order to help manage who can use luckperms.

If you don't set any luckperms permissions for groups, only players with op can use LuckPerms.

ViaVersion

ViaVersion allows players who aren't playing on the same version your server is on to still connect to your server.

For example, if your player is on version 1.21.8 but your server still runs 1.21.6, ViaVersion translates the packets which allows the player to join the server, even though they're on the wrong version.

ViaVersion installation

Installing ViaVersion should be as simple as downloading the plugin or mod's .jar file and uploading it to your server's plugins folder.

Bukkit/Paper servers

For Bukkit/Paper servers, you can install ViaVersion, which is a plugin.

https://modrinth.com/plugin/viaversion

For server hosts with a plugins tab, you should be able to find ViaVersion there.

ViaFabric (for Fabric servers)

If your server isn't running PaperMC or another Bukkit-based server software, but is instead using Fabric, you can install the ViaFabric mod.

ViaFabric and ViaFabricPlus both support clients, allowing players to connect to servers on any version they want, but ViaFabric also supports servers. When on a server, ViaFabric works very similarly to how ViaVersion works, just for Fabric servers.

Important: as far as I'm aware, ViaFabricPlus does not work on servers. Use regular ViaFabric instead.

https://modrinth.com/plugin/viafabric

Setup

After installing ViaVersion, you shouldn't need to do anything. Newer clients will be able to connect to your server with no configuration needed.

ViaVersion add-ons

If you also want to allow clients older than the server itself, you can install the ViaBackwards mod. Install it just like you installed ViaVersion or ViaFabric.

There are also ViaRewind (for very old versions pre-1.8.9) and ViaAprilFools (which supports clients from april fools versions). You probably don't need to install them, but they're listed below in case.

https://modrinth.com/plugin/viabackwards
https://modrinth.com/plugin/viarewind
https://modrinth.com/plugin/viaaprilfools

It's important to note that these versions may depend on ViaVersion or ViaFabric being installed, so if you need any of the extensions, install the main ViaVersion too.

ViaBackwards, ViaRewind and ViaAprilFools support both ViaVersion and ViaFabric. If you're using ViaVersion (plugin-based server like Paper) put the addons in your server's plugins folder. If you're using Fabric, you can put the addons in your mods folder.

GeyserMC

GeyserMC is a plugin that allows bedrock players to join your Java server. It works by translating bedrock packets into Java packets, allowing for cross-play between the two versions.

It's especially useful with the Floodgate plugin, as that way, bedrock players can join without a Java account.

Geyser ports setup

GeyserMC must use a different port to your default Java edition port.

If you're using a shared hosting provider:

  • Find the tab for managing port allocations
  • Create a new port allocation
  • Note down the port number

If you're self-hosting:

  • Go into your router's admin panel
  • Find the option for port forwarding
  • Open a port up for LAN and WAN port for the UDP protocol
  • Note down the port number you chose

Note: the default bedrock port is 19132. You should always choose that port number if possible, otherwise bedrock players will have to manually type in the port.

Installing the Geyser plugin

First, add the jar file to your plugins directory. You can find GeyserMC at https://modrinth.com/plugin/geyser.

This should be enough if you already have bedrock's default port (19132) forwarded or allocated, and you don't want to use floodgate. If you want to use a different port number (for example, on shared hosting) please read on.

Geyser configuration

Restart your server and Geyser should generate its config.yml file in the plugins/Geyser-Spigot folder.

Search for the port field and set that to whichever port number you allocated and noted down earlier.

Importantly, if you are using Floodgate, you must set these config options in that file:

address: auto
auth-type: floodgate

You can also set the MOTD and server name to change how your server appears in the bedrock server listings.

Connecting to Geyser servers

Once the plugin is installed, bedrock players should be able to connect using the IP and bedrock port - your players don't need to do anything else!

For connecting on consoles, you need to see this guide for how to join custom servers on console:

Java features

Java edition has some features that bedrock edition lacks. These include (but are not limited to):

GeyserMC provides the above features to bedrock clients using commands. Bedrock players can run a command to get similar functionality to that on Java edition.

See the pages specific to each command for more details.

Offhand for any item

In Java edition, you can put any item in your offhand, while in bedrock, only some items such as shields can be placed in the offhand.

Geyser allows bedrock players to place any item in their offhand, by using the /geyser offhand command.

Command usage

This command will swap the item in your offhand with the item in your main hand, if you are a bedrock player:

/geyser offhand

Tooltips for items

In Java edition, you can see extra information about an item, such as its NBT tags, durability, etc. by pressing F3 + H then hovering over the item in an inventory. Bedrock does not have this.

Geyser allows bedrock players to view these advanced tooltips by using the /geyser offhand command.

Command usage

This command will show advanced tooltips about items, if you are a bedrock player:

/geyser tooltips

Advancements

Bedrock doesn't have advancements, at least, not Java-style advancements.

Bedrock players can still view their advancements using the /geyser advancements command.

Command usage

Show your advancements (as a bedrock user):

/geyser advancements

World statistics

In Java edition, you can view statistics about your time on a server, such as how many of a certain type of block you have mined, or how long you have played the server.

Geyser brings this missing functionality to bedrock with the /geyser statistics command.

Command usage

Running this command on bedrock will bring up a Java-style statistics menu:

/geyser statistics

Good starting permissions

Default permissions

  • geyser.command.offhand
  • geyser.command.tooltips
  • geyser.command.advancements
  • geyser.command.statistics
  • geyser.command.help
  • geyser.command.list

Moderator permissions

There aren't any extra Geyser permissions moderators need that aren't already included in the default group.

Admin permissions

  • geyser.command.dump
  • geyser.command.settings
  • geyser.command.shutdown
  • geyser.command.reload
  • geyser.command.version
  • geyser.command.extensions

Floodgate

Floodgate is an extention for GeyserMC, meaning you need Geyser installed as a plugin. Please see the previous chapter or the Floodgate config config options needed for Geyser to support Floodgate.

Floodgate allows servers in online-mode to connect to your server, without needing a Java account. If you use Geyser, you should probably install this too.

Floodgate installation

Installing Floodgate is as simple as downloading the jar file and adding it to your plugins folder.

https://hangar.papermc.io/GeyserMC/Floodgate

Floodgate config

As mentioned in the GeyserMC chapter, you need to set a few settings in Geyser's config.yml:

address: auto
auth-type: floodgate

Floodgate is mostly configured through GeyserMC, so check the configure options for Geyser for more information.

Connecting to a Floodgate server

Floodgate should work out-of-the-box after you've installed it.

Bedrock players should be able to connect with just the IP and bedrock port - they don't need to set up any custom proxy on their end.

Whitelisting bedrock players

There are two options for whitelisting bedrock players:

  1. Turn off the whitelist, allow them to join, add the user to the whitelist and then turn back on the whitelist
  2. Use the /fwhitelist (floodgate whitelist) command.

/fwhitelist add

You can add players to the whitelist using the /fwhitelist add command. For example:

/fwhitelist add Bedrock123

Note above that we do not add the dot before the user's name, like you would if using the default /whitelist command.

Running that will allow the Bedrock123 user to join, if they have a Microsoft account linked to their Minecraft profile.

Important note: the /fwhitelist command requires a player to have joined a Geyser server before. If they have never connected to any Geyser server, this command will fail and you will need to first temporarily disable the whitelist to allow them to join.

/fwhitelist remove

Similar to the default /whitelist command, you can remove players from the whitelist. For example:

/fwhitelist remove Bedrock123

Note again that we do not add the dot before the user's name, like you would if using the default /whitelist command.

Linking to a Java account

Good starting permissions

Default permissions

  • floodgate.command.linkaccount
  • floodgate.command.unlinkaccount

Moderator permissions

  • floodgate.command.fwhitelist

Admin permissions

Admins don't need any extra permissions that the moderator and default group above don't provide.

DiscordSRV

DiscordSRV allows you to read and type in in-game-chat through your Discord server.

You can create a new text channel, and that channel will act as a 'tunnel' to your Minecraft chat!

DiscordSRV plugin installation

Install the plugin like you do with any other plugin, by adding the jar file to your plugins folder.

https://modrinth.com/plugin/discordsrv

DiscordSRV create bot

  1. Log into your account on the Discord developer portal.
  2. Click New Application.
  3. Choose a name for your chat bot and create the bot.
  4. Go to the Bot tab.
  5. Disable the Public Bot setting.
  6. Enable the Server Members Intent and Message Content Intent.
  7. Click Reset Token.
  8. Click Copy to copy your bot's private token. Don't share this anywhere except in your config.yml file.

Configuring the plugin

Edit the plugins/DiscordSRV/config.yml file.

BotToken

Find the BotToken field in the config file and set it to equal the bot token you just copied. You shouldn't share this, and the only place you should paste it is in your config.yml file.

Channels

  1. Create a channel on your discord server for your in-game chat.
  2. Right click the channel and click 'Copy Channel ID'.
  3. Find the Channels field and replace the 0s with the channel ID you copied.

Adding the DiscordSRV bot

Once you've set up the plugin, you can add the bot to your discord server.

  1. Go to the General Information page on the discord developer portal page for your application.
  2. Copy the Application ID
  3. Go to https://scarsz.me/authorize and paste in the application ID using Ctrl + V.
  4. Follow the instructions to add the bot to your server.

Using the plugin

Try typing in your Minecraft chat. You should see the message in your Discord server! You should also be able to talk to Minecraft players through Discord, just by typing in the channel you created.

Good starting permissions

Default permissions

  • discordsrv.discord
  • discordsrv.chat
  • discordsrv.help
  • discordsrv.link
  • discordsrv.unlink
  • discordsrv.linked
  • discordsrv.linked.others (if you want players to be able to see others' discord account names)

Moderator permissions

  • discordsrv.link.others
  • discordsrv.unlink.others
  • discordsrv.linked.others
  • discordsrv.bcast

Admin permissions

  • discordsrv.updatenotification
  • discordsrv.reload
  • discordsrv.resync
  • discordsrv.debug
  • discordsrv.groupsyncwithcommands
  • discordsrv.nicknamesync

CoreProtect

CoreProtect is a block logging plugin. This means it logs everything that happens in your world and allows you to roll it back.

For example, if a player griefed a base by stealing items from a player's chest, you can run a command to check who stole and roll everything back.

CoreProtect installation

To install CoreProtect, simply place the .jar file into your plugins directory.

https://modrinth.com/plugin/coreprotect

Building from source

CoreProtect hasn't updated in a while, but you can get an up-to-date version if you are comfortable with compiling the plugin yourself.

Please see https://gist.github.com/iamnotpayingforyourpatreon/20371ddfb318c49dda48fc537032d923 for help on building CoreProtect from scratch.

Setup

Unless you wish to use a custom database, you don't need to make any changes to the Coreprotect config to get it up and running. The default configuration works out-of-the-box.

CoreProtect alternatives

If you're using Fabric, CoreProtect isn't available. The best alternative is Ledger. Ledger isn't covered in this guide, but you should be able to figure out the commands. Installation is as simple as adding the mod's .jar file to your mods folder. You can find the .jar at https://modrinth.com/plugin/ledger

If you are using a Bukkit-based server software like Paper but don't want to use CoreProtect, you can try https://modrinth.com/plugin/prism. Setup is a little more involved though, as you need to set up a custom database and link to it, so Prism isn't covered in this guide.

If you are using Sponge, Prism is the best option.

CoreProtect lookup

Lookups are a way of listing the actions that match the query, but not actually doing anything about it. In other words, just looking up what happened.

Command usage

/co lookup <query>

Example: action, radius and time

For a simple example, to lookup results matching the block action within a 5 block radius in the last 1 hour, use:

/co lookup action:block radius:5 time:1h

Example: item type, global radius, time and excluding a user

This example will return all logs created in the last 1 day which include an elytra item and were not carried out by user Minecraft123.

/co lookup radius:#global include:elytra exclude:Minecraft123 time:1d

Query parameters

There are lots of different parameters you can use to narrow down your search.
You can find a full list on the query parameters page.

CoreProtect rollback

When running a rollback with coreprotect, it essentially runs a lookup and rolls back each event that lookup returns.

This means that when you run a rollback, you can be sure that it will roll back everything and only everything that is returned by the same query as a lookup (assuming you don't move and all query parameters stay the same).

Command usage

/co rollback <query>

Example: action, radius and time

For a simple example, to rollback results matching the block action within a 5 block radius in the last 1 hour, use:

/co rollback action:block radius:5 time:1h

Example: item type, global radius, time and excluding a user

This example will roll back all events in the last 1 day which include an elytra item and were not carried out by user Minecraft123.

/co rollback radius:#global include:elytra exclude:Minecraft123 time:1d

Query parameters

There are lots of different parameters you can use to narrow down your search.
You can find a full list on the query parameters page.

CoreProtect undo

It's important to be able to undo a rollback if you mess up the command. Coreprotect makes this easy.

Command usage

It's very easy to undo a coreprotect action...

/co undo

... if you only want to undo the last action (the last rollback/restore).

If you want to undo a rollback from the past, you need to use the restore command. Restore essentially undoes the actions of a rollback.

CoreProtect restore

Restores are essentially the opposite of rollbacks.

Their function is to undo the actions of a rollback. For example, if you accidentally rolled back somebody's base too far, it may delete parts you didn't want it to. If /co undo won't do the job, you can rerun the same command you used to roll it back but with rollback replaced with restore, and if you stand in the same place, the rollback will be reverted.

Command usage

/co rollback <query>

Example: action, radius and time

For a simple example, we rolled back events matching the block action within a 5 block radius in the last 1 hour. This was a mistake, so we can restore (undo the rollback) using:

/co restore action:block radius:5 time:1h

Example: item type, global radius, time and excluding a user

In this example, we accidentally rolled back all events in the last 1 day which include an elytra item and were not carried out by user Minecraft123. To undo this, you can run:

/co restore radius:#global include:elytra exclude:Minecraft123 time:1d

Query parameters

There are lots of different parameters you can use to narrow down your search.
You can find a full list on the query parameters page.

Query parameters

CoreProtect provides lots of parameters you can specify to help narrow down your search or rollback.

They act as filters: if an event doesn't match one of the filters, it will be removed from the results and won't show up in the lookup and won't be rolled back.

List of parameters

Flags

CoreProtect also allows you to specify extra information about what you want the command to do. You should add these flags at the end of your command.

CoreProtect flags start with a hastag (#).

See more: CoreProtect flags

Action parameter

Every event that coreprotect logs is a type of action. For example, a block action, or container action.

Syntax

You can query for a specific action type in any lookup, rollback or restore, using either of the below parameters, where ACTION is the name of the action type:

action:ACTION
a:ACTION

Types of actions

Block action

Block actions are called whenever any blocks are created or destroyed in the world.

CoreProtect logs block events from many sources: creeper and TNT explosions, worldedit commands, etc, not just from players.

Syntax

You can use the block action query in one of these two ways:

action:block
a:block

Example lookup

/co lookup action:block ...

Block place action

To overspecify the action type to only return results for block place events, you can use the +block action:

/co lookup action:+block ...

This will only return results for block place events, and block break events will be ignored.

Block break action

To overspecify the action type to only return results for block break events, you can use the -block action:

/co lookup action:-block ...

This will only return results for block break events, and block place events will be ignored.

Chat action

Chat actions are called whenever any message is sent in chat.

This action is generally only triggered by player events.

Syntax

You can use the chat action query in one of these two ways:

action:chat
a:chat

Example lookup

/co lookup action:chat ...

Rollbacks

Chat events can't be rolled back or restored, as they were already sent to clients.

Click action

Click actions are called whenever a player interacts with a block or other part of the world (through a mouse click).

There are hundreds of different causes of a click action, such as interacting with a crafting table, opening a chest or opening a door/trapdoor.

Syntax

You can use the click action query in one of these two ways:

action:click
a:click

Uses

I've personally found the click action very useful when looking up which player clicked the trapdoor above another player's ender pearl stasis chamber.

There are probably far more uses than this. You can also see when players clicked buttons, flipped levers, etc.

Example lookup

/co lookup action:click ...

Example lookup: only oak trapdoors

/co lookup action:click include:oak_trapdoor ...

Command action

Command actions are called whenever a player executes a server command.

Syntax

You can use the command action query in one of these two ways:

action:command
a:command

Example lookup

/co lookup action:command ...

Example user-specific lookup

/co lookup action:command user:Minecraft123

Container action

Container actions are called whenever items enter or exit a container. This could be because a player transferred the items, or a hopper transferred them to another container.

Syntax

You can use the container action query in one of these two ways:

action:container
a:container

Example lookup

/co lookup action:container ...

Example: checking 5 block radius, last 7 days

/co lookup action:container radius:5 time:7d

Container item insert action

To overspecify the action type to only return results for when items were added to a container, you can use the +container action:

/co lookup action:+container ...

This will only return results for item insert events, and item remove events will be ignored.

Container item remove action

To overspecify the action type to only return results for when items were removed from a container, you can use the -container action:

/co lookup action:-container ...

This will only return results for item remove events, and item insert events will be ignored.

Inventory action

Inventory actions are called whenever any item leaves or enters a player's inventory.

Syntax

You can use the inventory action query in one of these two ways:

action:inventory
a:inventory

Example lookup

/co lookup action:inventory ...

Example: rolling back diamonds

/co rollback user:Minecraft123 action:inventory include:diamond time:90m

Inventory item insert action

To overspecify the action type to only return results for item add events, you can use the +inventory action:

/co lookup action:+inventory ...

This will only return results for inventory item insert (gain) events, and item removal events will be ignored.

Inventory item remove action

To overspecify the action type to only return results for item remove events, you can use the -inventory action:

/co lookup action:-inventory ...

This will only return results for inventory item removal (loss) events, and item insertion events will be ignored.

Item action

Item actions are called whenever any item is dropped or picked up by a player.

Syntax

You can use the item action query in one of these two ways:

action:item
a:item

Example lookup

/co lookup action:item ...

Item remove (pickup) action

To overspecify the action type to only return results for item pickup events, you can use the +item action:

/co lookup action:+item...

This will only return results for item pickup events, and item drop events will be ignored.

Item remove (drop) action

To overspecify the action type to only return results for item drop events, you can use the -item action:

/co lookup action:-item...

This will only return results for item drop events, and item pickup events will be ignored.

Kill action

Kill actions are called whenever a player or another mob kills an entity.

For example, if a zombie killed a villager, coreprotect would log that as:

  • user: #zombie
  • action: kill
  • target: #villager

Syntax

You can use the kill action query in one of these two ways:

action:kill
a:kill

Example lookup

/co lookup action:kill ...

Example lookup for villager death

/co lookup action:kill include:villager ...

Example: roll back dogs dying

/co rollback action:kill include:wolf

Session action

Session actions are created when a player logs into the server or logs out of the server.

Syntax

You can use the session action query in one of these two ways:

action:session
a:session

Example lookup

/co lookup action:session ...

Log-in action

To overspecify the session action type to only return results for when a user logged in to the server, you can use the +session action:

/co lookup action:+session ...

This will only return results for log-ins, and log-outs will be ignored.

Log-out action

To overspecify the session action type to only return results for when a user logged out of the server, you can use the -session action:

/co lookup action:-session ...

This will only return results for log-outs, and log-ins will be ignored.

Sign action

Sign actions are used when a player edits the text on a sign.

Syntax

You can use the sign action query in one of these two ways:

action:sign
a:sign

Example lookup

/co lookup action:sign ...

Example: look up sign edits for specific player

/co lookup action:sign user:Minecraft123 time:7d ...

Username action

Username actions are triggered when a player changes their username.

Syntax

You can use the block action query in one of these two ways:

action:username
a:username

Example lookup

/co lookup action:username ...

User parameter

The user query filter parameter allows us to filter the events by the user that performed them.

The user could be a player, but could also be another entity in the world, for example, TNT.

Syntax

You can query for only events by a specfic user in one of these ways:

user:USER
u:USER

Types of user

While user is often the username of a player, it can also be one of these special user types:

  • ...

Radius parameter

The radius filter allows us to get only the events within a certain radius of the player, or another radius type.

Syntax

You can query for results only within a certain radius using one of the following:

radius:RADIUS
r:RADIUS

Types of radius

  • numerical radius: up to how many blocks away to check?
  • #world: search the entire overworld dimension
  • #world_nether: search the entire nether dimension
  • #world_the_end: search the entire end dimension
  • #worldedit or #we: search only within your worldedit selection

Example: lookup within 5 blocks of you

/co lookup radius:5

Example: lookup in overworld dimension

/co lookup radius:#world

Example: lookup in nether dimension

/co lookup radius:#world_nether

Example: lookup in end dimension

/co lookup radius:#world_the_end

Example: lookup within worldedit region

Note: to use the #worldedit radius, you need to have first selected a region using the worldedit wand (wooden axe). You can get it by running //wand. Select the region by left clicking and then right clicking on each corner of the selection.
See the WorldEdit chapter for more help using WorldEdit.

/co lookup radius:#worldedit

Time parameter

The time parameter allows us to filter for only events that happened less than a certain time ago, e.g. are more recent than 2 days ago.

This parameter is often required.

Syntax

You can specify the time parameter in one of two ways:

time:TIME
t:TIME

Time format

The time is specified using units, for example, 3d for 3 days. A full list of the units coreprotect understands is shown below:

  • s - seconds
  • m - minutes
  • h - hours
  • d - days
  • w - weeks

Combining units

You can combine different units together. For example, to filter for events that happened less than 1 hour and 20 minutes ago:

time:1h20m

Decimals

You can use decimals in your time values. For example, to filter for events within 2 and a half days:

time:2.5d

Time ranges

If you want to get events that occured more recently than one time frame but longer ago than another time frame, you can use a time range.

For example, to check for events that happened between 2-3 hours ago:

time:2h-3h

Include parameter

The include parameter allows us to massively narrow down our search by only including events that match a specific item, block or entity type.

Types of include parameters

The include parameter can be any one of:

  • a block
  • an item
  • an entity

Specifying multiple patterns

Sometimes, you don't want to just look up a single item but rather a list of items you want to check. You can do this by separating the different item IDs using a comma, for example:

include:stone,cobblestone,smooth_stone

Example: rolling back diamond blocks

For example, we could roll back only events that a user called Minecraft123 did and that included a diamond_block item, by 3 days, like this:

/co rollback user:Minecraft123 include:diamond_block time:3d

Exclude parameter

The exclude parameter allows us to narrow down our search by ignoring events that match a specific item, block, entity type or player.

The ability to ignore players makes this incredibly useful for cases such as checking for stealing from chests, as you can exclude the owner from the lookup so any stealing is immediately obvious.

Types of exclude parameters

The include parameter can be any one of:

  • a block
  • an item
  • an entity
  • a player

Specifying multiple patterns

Sometimes, you don't want to just exclude up a single item but rather a list of items. You can do this by separating the different item IDs using a comma, for example:

include:stone,cobblestone,smooth_stone

Example: excluding a shop owner from a lookup

/co lookup radius:5 action:container time:3d exclude:Minecraft123

Example: excluding multiple shop owners from a lookup

/co lookup radius:5 action:container time:3d exclude:Minecraft123,Minecraft456

Flags

Flags in coreprotect allow us to get extra information about the lookup or rollback.

Flags start with a hashtag (#) and you should add them at the end of a command.

The 4 flags in coreprotect

Preview flag

The #preview flag lets you see what the result of a rollback or restore would be, without actually applying it.

It's incredibly useful for if you're not sure which command to use and so you don't want to fully apply a rollback/restore.

Example: rolling back griefing

If you want to roll back griefing on user Minecraft123's house but aren't sure exactly which command to use, you can test out the results of a rollback like this:

/co rollback radius:30 exclude:Minecraft123 time:7d #preview

That way, you can check the rollback will actually do what you want it to do, so you won't accidentally break something that can't fully be reverted using /co undo.

Example: restoring an incorrect rollback

Let's say you didn't learn your lesson above and rolled back the house without previewing first. You accidentally deleted the house above because you forgot the exclude:Minecraft123. You'd restore it like this:

/co restore radius:30 time:7d user:Minecraft123

... in order to restore any actions done by Minecraft123.

But you could make sure that this would restore the house by adding the #preview flag:

/co restore radius:30 time:7d user:Minecraft123 #preview

A note about rollbacks

If you add the #preview flag, coreprotect won't actually roll anything back.
You'll need to rerun the rollback command without the #preview if you want to complete a rollback.

Count flag

The #count flag lets you see how many rows a lookup returned.

It allows you to see exactly how many events occured that match the filter parameters.

Example: counting the number of container logs

Let's say you want to find out how many logs there are of player Minecraft123 taking out diamonds from nearby containers. Here's how you would do that:

/co lookup radius:5 user:Minecraft123 action:-container include:diamond #count

The #count tells CoreProtect to tell us how many logs it found that matched our query filter.

Verbose flag

The #verbose flag simply tells CoreProtect to give us extra information while the rollback or restore is running.

This means it tells you exactly what it's doing at each tick.

Syntax

Add the flag to the end of your command like any other flag:

/co rollback <query> #verbose
/co restore <query> #verbose

Silent flag

The #silent flag simply tells CoreProtect not to alert us after it finishes rolling back each chunk.

This can make your chat cleaner.

Syntax

Add the flag to the end of your command like any other flag:

/co rollback <query> #silent
/co restore <query> #silent

Good starting permissions

Default permissions

The default group doesn't need any CoreProtect permissions.

If you trust your players, you could give players these permissions so they can lookup griefing and stealing themselves (but not do any rollbacks):

  • coreprotect.inspect
  • coreprotect.lookup
  • coreprotect.help

This is rare, though. Usually restricting access to only moderators is a good idea.

Moderator permissions

  • coreprotect.inspect
  • coreprotect.lookup
  • coreprotect.rollback
  • coreprotect.restore
  • coreprotect.teleport
  • coreprotect.help

Admin permissions

  • coreprotect.reload
  • coreprotect.status
  • coreprotect.purge -- if you completely trust your admins

Grim

GrimAC is an open source anticheat plugin.

Why do you need an anticheat?

On any server, you will have players who use mods to give them an advantage in-game (i.e. 'hacks').

Installation

Install Grim by downloading the .jar from https://modrinth.com/plugin/grimac and placing it into your plugins directory.

Alternatives

If you can afford it, I would recommend getting Vulcan. It's a paid anticheat, but is by far the best anticheat for Minecraft Java servers.

You can buy and download Vulcan at its SpigotMC page, https://www.spigotmc.org/resources/vulcan-anti-cheat-advanced-cheat-detection-1-8-1-21-8.83626/

Vanish

One essential plugin for server moderation is a /vanish plugin. They allow you to go invisible on your server to essentially spy on other players.

Why is that useful?

Often, you'll want to check that a certain player isn't causing any trouble. You could do this using spectator mode, but most people will stop causing chaos if they see your little grey name in the tablist :)

Installation

There are lots of different vanish plugins. We will use this one:

Downloading the plugin

Download the plugin from the Modrinth page and add it to your server's plugins folder.

https://modrinth.com/plugin/provanish

Setup

Once you have the jar file in your plugins directory, you should be ready to use /vanish with no extra setup needed!

Vanishing yourself

Provanish has a /vanish command which will make you invisible to other players.

Note that this won't make you invisible to any player which has the vanish.see permission - players with that permission can see people even when they're in vanish.

Command to vanish

Simply run this command to make yourself invisible to others:

/vanish

Command to unvanish

Provanish uses the same command to vanish as to unvanish! That means to unvanish yourself, just type this:

/vanish

Vanishing other players

Provanish has a /vanish command which can vanish not only yourself but also another player.

Note that this won't make them invisible to any player which has the vanish.see permission - players with that permission can see people even when they're in vanish.

Command to vanish another player

Simply run this command to make a player invisible to others:

/vanish <player>

Command to unvanish

Provanish uses the same command to vanish as to unvanish! That means to unvanish someone, just type this:

/vanish <player>

Good starting permissions

Default

The default role doesn't need any vanish permissions.

Moderator

  • vanish.use
  • vanish.see

Note that you may want to temporarily disable the vanish.see permission for moderators, if you want to spectate a mod. Sometimes it's helpful to not give mods permission to see other vanished players :)

Admin

There aren't any extra permissions admins should have that they don't already have from the moderator parent. But if you don't want mods to see other vanished players, you should allow admins to with the vanish.see permission so at least admins can see each other when in vanish.

Simple Voice Chat

Simple Voice Chat is a plugin and mod which allows players to talk to each other using proximity chat. It also has support for groups, allowing you to talk to others without being nearby.

Note: Simple Voice Chat must be installed on both the client and the server for players to talk to each other.

Port allocation

Before adding the plugin to your server, you should first allocate a port for it. This port should be a UDP port.

  • If you're using a hosting provider, you should be able to create a new UDP port allocation through the Network or Ports tab.
  • If you're self-hosting, you will need to port forward a new port number, in the same way you forwarded your main server's port.

Once your port is allocated, note down the port number and continue to Plugin installation

Plugin installation

Install Simple Voice Chat like you would any other plugin: to do it manually, upload the jar file to your server's plugins directory.

https://modrinth.com/plugin/simple-voice-chat

Configuration

You shouldn't need to do any extra configuration except for specifying the SVC port.

  1. Start your server and Simple Voice Chat will generate the plugins/VoiceChat/config.yml file.
  2. Find the port field and change its value to be the port number you allocated in the previous page.
  3. Save the config file and restart your server

By default, members without op may not be able to hear other players or speak. Please see the good starting permissions page to fix this.

Setup on clients

  1. Install the mod from https://modrinth.com/plugin/simple-voice-chat
  2. Log in to the server
  3. Press 'V' and follow the setup instructions
  4. Start talking!

Groups

If you press G, you can manage the different groups and join those groups.

Groups allow you to talk to other players (optionally in private), and allow you to keep talking to each other even if you are no longer near each other.

Types of group

  • Normal - you can hear players outside the group (when nearby) but they can't hear you.
  • Open - you can hear players outside the group (when nearby) and they can also hear you.
  • Isolated - you can't hear players outside the group, and they can't hear you.

Good starting permissions

Default permissions

  • voicechat.listen
  • voicechat.speak
  • voicechat.groups

Moderator permissions

  • voicechat.admin

Admin permissions

No extra permissions are needed for admins that they don't already inherit from moderator.

Chunky

Chunky allows you to pregenerate the chunks of a world. On CPUs with very few threads, this can massively increase performance as the server doesn't have to generate new terrain.

If we do all the heavy computation in generating the chunks before players join the server, they can explore the world with little delay in chunks being loaded.

Installation

Download the Chunky plugin jar and upload it to your server's plugins directory. That's it.

Setup

No additional setup is required to start using Chunky.

Pregenerating a world

You must set a (fairly) small worldborder before generating the world. By following the steps in this page, Chunky will begin to pregenerate the world inside the border.

Pregenerating the overworld

If you want to pregenerate the overworld dimension, run these commands while standing in the overworld:

/chunky world world
/chunky worldborder
/chunky start

Pregenerating the nether

If you want to pregenerate the nether dimension, run these commands while standing in the nether:

/chunky world world_nether
/chunky worldborder
/chunky start

Pregenerating the end

If you want to pregenerate the end dimension, run these commands while you are standing in the end:

/chunky world world_the_end
/chunky worldborder
/chunky start

World command

The chunky world command allows you to set the world Chunky should pregenerate in (for vanilla servers, this is the dimension).

Command usage

/chunky world <world>

List of worlds

On Paper servers, you will usually have 3 worlds by default:

  • world - the overworld dimension
  • world_nether - the nether dimension
  • world_the_end - the end dimension

You may have more worlds than this, especially if you use custom plugins which add worlds or dimensions.

Example usages

Tell Chunky to pregenerate chunks in the overworld:

/chunky world world

Tell Chunky to pregenerate chunks in the nether:

/chunky world world_nether

Tell Chunky to pregenerate chunks in the end:

/chunky world world_the_end

Worldborder command

The chunky worldborder command tells Chunky to pregenerate every chunk within the world border. The world is set using the chunky world command.

What does it do?

Under the hood, the chunky worldborder command does two things:

  • Sets the centre to 0,0 (you can manually set the centre with the chunky center command).
  • Sets the radius to the same radius as the worldborder.

Command usage

/chunky worldborder

The command doesn't take any arguments.

Changing the vanilla world border

To set the diameter of the vanilla world border, you use the /worldborder command:

/worldborder set <diameter>

For example, for a world border of diameter 20,000, use:

/worldborder set 20000

Center command

The chunky center command allows you to determine where Chunky should start pregenerating from. It will then continue outwards from the center by the number of blocks specified with chunky radius;

Command usage

/chunky world <x> <y>

Center at 0,0

Radius command

Spawn command

Start command

Checking Chunky's progress

You can use the chunky progress command to check what percentage of the world chunky has pregenerated so far.

Command usage

/chunky progress

Cancel command

Use the chunky cancel command to stop pregenerating a world.

After using this command, you cannot resume pregeneration. If you just want to temporarily pause Chunky, you should instead use Chunky's pause command.

Command usage

/chunky cancel

When to use

You can only use chunky cancel if a chunky task is currently in progress. In other words, you can only run this after starting the pregeneration with the /chunky start command.

Pause command

Use the chunky cancel command to temporarily stop pregenerating a world.

After using this command, you can resume pregeneration using the chunky continue command.
If you instead would like to permanantly cancel the pregen, you should instead use the cancel command.

Command usage

/chunky pause

When to use

You can only use chunky pause if a chunky task is currently in progress. In other words, you can only run this after starting the pregeneration with the /chunky start command.

Continue command

Use the chunky continue command if you have previously paused a chunky pregeneration and would like to resume, or 'unpause' it.

Command usage

/chunky continue

When to use

You can only use chunky resume if you have previously paused a task using /chunkky pause.

Good starting permissions

Default permissions

Your regular players do not need to use Chunky.

Moderator permissions

Mods also don't need to use chunky; it's solely for server admins.

Admin permissions

  • chunky.command.start
  • chunky.command.pause
  • chunky.command.continue
  • chunky.command.cancel
  • chunky.command.world
  • chunky.command.shape
  • chunky.command.center
  • chunky.command.radius
  • chunky.command.worldborder
  • chunky.command.spawn
  • chunky.command.corners
  • chunky.command.pattern
  • chunky.command.selection
  • chunky.command.silent
  • chunky.command.quiet
  • chunky.command.progress
  • chunky.command.reload

I would not recommend giving anybody else the chunky.command.trim permission, as it can be used to delete your entire world.

WorldEdit

CraftingStore

Finding lag