Skip to content

Installation: PlotSquared Worlds

Jesse Boyd edited this page Apr 7, 2019 · 3 revisions

Background:

  • PlotSquared worlds is a feature where players claim entire worlds as plots.
  • RedEdit can be used to load balance these worlds between multiple servers (henceforth referred to as nodes).
  • All PlotSquared Worlds interaction (claiming, teleporting, etc) will transparently occur between nodes.
  • Example: BuildersRefuge (at time of writing) has 5 Nodes load balancing over 6000 plot worlds.

Performance considerations:

  • PlotSquared worlds does not actively save chunks which are unmodified
  • There is an additional trim command /anvil trimallflat <world> which can be run on unloaded worlds.
  • Worlds are unloaded automatically

Requirements:

Installation:

We are setting up a single load balancing Node, we can later copy this server for additional Nodes in the load balancing group.

  • Run the server once to generate the necessary configuration files.

1.) Setting up PlotSquared worlds:

  • In the PlotSquared configuration under enabled-components set worlds: true. This will allow players with the usual permission to claim flat worlds with /plot auto.
  • Claim the first plot as administrator: /plot *;0;0 auto

2.) Configure a shared world directory

All load balancing nodes in the group should use the same directory for worlds.

  • In the root directory for the Node, open the bukkit.yml
  • Set world-container: "absolute-path-to-shared-directory"
  • Note: If the nodes are on different machines, you must setup a network file share (or similar e.g. Samba)

3.) Configure RedEdit

# Redis Service IP
ip: "127.0.0.1"
# Redis Service Port
port: 6379
# Redis Password
password: ''


# The group this server belongs to
#  - Your lobby lobby will be in its own group
#  - The load balancing nodes will be in another group
#  - All other plugins should be configured the same if they are in the same group
server-group: 1
# This server's unique id
#  - Must be in the range: [0,65535]
#  - DO NOT SET THIS TO ANYTHING USED BY ANOTHER SERVER OR NODE
server-id: 1

# Should RedEdit teleport players to their last position on spawn
spawn-teleport: true

debug: true

# Should RedEdit sync PlotSquared settings
# - Set to true if this is a load balancing node
plotsquared-sync: true

# Should RedEdit dynamically render chunks based on server load
dynamic-rendering: true

# Paths for various directories
# - Again, these should point to the same shared directory
paths:
  users: "users"
  warps: "warps"

4.) Set server name

RedEdit WILL NOT WORK if the name in your server.properties does not match the name of your server in your bungee (or lilipad) configuration

  • In the root directory, open server.properties and set your server-name

5.) Create multiple load balancing nodes

  • Copy the first Node
  • Change the RedEdit server-id in the /plugins/RedEdit/config.yml
  • Change the server-name in the server.properties
  • Add it to bungee/lily

6.) Usage

Use the //tpg <group-id> to teleport to the least loaded server in a group

  • e.g. In your lobby, have a portal or somesuch which has the user execute the command

Teleportation commands / permissions

See the @Command annotations TeleportationCommands