Server Groups

Groups are the foundation of SimpleCloud's server management system. They define how your Minecraft servers are configured, deployed, and managed. Each server inherits properties from its group, allowing for consistent and automated server management.

Quick Setup

The fastest way to create a new group is through our CLI:

# Create a new group interactively
sc create group

# Create a group with specific parameters
sc create group --name lobby --type SERVER --min-memory 1024

# Create a proxy group
sc create group --name proxy --type PROXY --min-memory 512 --max-memory 512 --start-port 25565

# Create a game server group
sc create group --name survival --type SERVER --min-memory 2048 --max-memory 4096 --start-port 50000

Configuration Structure

Groups are configured using YAML files located in the groups/ directory. Here's a complete example:

name: lobby
type: SERVER
min-memory: 1024
max-memory: 1024
start-port: 50000
max-players: 100
min-online-count: 1
max-online-count: 1
cloud-properties:
  configurator: "paper_velocity"
  template-id: "lobby"
  server-url: "https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/463/downloads/paper-1.20.4-463.jar"
  max-startup-seconds: "120"

Group Types

There are two types of groups in SimpleCloud, PROXY and SERVER. PROXY groups are used for proxy servers like Velocity or BungeeCord that handle player connections and server networking. SERVER groups are used for Minecraft game servers running software like Paper, Spigot, or Minestom.

In general it's not important to the Controller to know which group type you're using. Basically, both types are the same, the main difference is that PROXY groups and SERVER groups are configured differently, so that a Server Host Droplet knows how to handle them.

Editing a Group

Using the CLI

# Soon

Manual Editing

Groups can be edited by modifying their YAML files directly. When editing group files:

  • Name Changes: If you change the group name, you must also rename the file to match
  • Type Changes: Changing the group type is not recommended as it requires reconfiguration of cloud-properties
  • Memory/Player Limits: Can be changed freely, but minimum should always be lower than maximum
  • Port Configuration: Can be modified, if ports are already in use, the Server Host Droplet will pick up the next available port
  • Cloud Properties: Can be customized based on your needs (see Cloud Properties), but we have some required ones, if you use our Server Host Droplet

File Operations

Groups can be managed directly through the filesystem:

  1. Location
  • All group files are stored in the groups/ directory by default
  • Files must use .yml extension
  • Filename must match the group name
  1. File Permissions
  • Ensure files are readable by the SimpleCloud process
  • Recommended: 644 (-rw-r--r--)
  • Directory permissions: 755 (drwxr-xr-x)
  1. Automatic Processing
  • New files are detected and loaded automatically
  • File modifications trigger immediate updates
  • Deleted files remove groups from the system

Core Properties

Every group requires these essential configuration properties:

PropertyTypeDescription
namestringUnique identifier for the group
typePROXY/SERVERDetermines the server's role
min-memoryuintMinimum RAM allocation in MB
max-memoryuintMaximum RAM allocation in MB
start-portuintBase port for server instances
max-playersuintMaximum player capacity
min-online-countuintMinimum running instances
max-online-countuintMaximum running instances

Cloud Properties

The cloud-properties section is primarily used by the Server Host Droplet to configure and manage servers. While you can add any custom properties here, certain properties are required when using our Server Host Droplet:

cloud-properties:
  # Required for Server Host Droplet
  configurator: "paper_velocity"  # Server software configuration
  template-id: "lobby"           # Template reference
  server-url: "https://..."      # Server JAR download URL
  max-startup-seconds: "120"     # Startup timeout

  # Optional custom properties
  custom-setting: "value"        # Add any custom properties needed

Best Practices

  1. Naming Convention
  • Use lowercase names without spaces
  • Keep names short but descriptive
  • Use hyphens for multi-word names
  1. Resource Allocation
  • Set realistic memory limits
  • Consider overhead when setting max-players
  • Configure appropriate port ranges (We do this automatically in our Server Host Droplet)

API reference

We have a detailed guide on how to use the API to manage groups. You can find it in the API documentation.

What's Next?

Here are a few links that might be helpful as you continue to explore SimpleCloud:

Was this page helpful?