How Templates Work
When SimpleCloud starts a server, templates are applied in a specific order. Each layer can add or overwrite files from previous layers, giving you flexible control over your server configurations.Need persistent data that survives restarts? Use a Persistent Server instead of a group.
Template Directory Structure
templates
every
Applied to ALL servers
every_proxy
every_server
every_paper
every_velocity
_tagged
minigames
premium
lobby
bedwars
cache
Template Hierarchy
Templates are applied in order. Later templates overwrite earlier ones:| Order | Directory | Description |
|---|---|---|
| 1 | every/ | Base files for all servers |
| 2 | every_{type}/ | Type-specific (every_proxy/, every_server/) |
| 3 | every_{software}/ | Software-specific (every_paper/, every_velocity/) |
| 4 | _tagged/{tag}/ | Tag-based templates |
| 5 | {group-name}/ | Group-specific templates |
| 6 | cache/{group}/ | Cached files from previous runs |
Example: How a Lobby Server Gets Built
For a server in thelobby group with Paper software and the premium tag:
every/- Base plugins like SimpleCloud-Pluginevery_server/- Common server configs (not proxy)every_paper/- Paper-specific settings_tagged/premium/- Premium-only plugins/configslobby/- Lobby-specific world and plugins
Base Template: every/
The every/ folder contains files applied to all servers - proxies and game servers alike. Use this for:
- SimpleCloud plugins that every server needs
- Universal configuration files
- Shared resources
templates
every
plugins
simplecloud-plugin.jar
Type Templates: every_{type}/
Apply files based on server type:
every_proxy/- All proxy servers (Velocity, BungeeCord)every_server/- All game servers (Paper, Spigot, etc.)
templates
every_proxy
plugins
proxy-essentials.jar
every_server
plugins
worldedit.jar
Software Templates: every_{software}/
Apply files based on server software:
every_paper/- All Paper serversevery_velocity/- All Velocity proxiesevery_spigot/- All Spigot servers
templates
every_paper
plugins
paper-specific-plugin.jar
Tagged Templates: _tagged/{tag}/
Tags let you share configurations across multiple groups. Assign tags to groups, and any server in those groups gets the tagged template applied.
Setting Up Tags
- Create a tag folder in
templates/_tagged/:
templates
_tagged
minigames
plugins
minigame-core.jar
premium
plugins
premium-features.jar
- Assign tags to your groups via CLI or API when creating/updating the group.
Use Cases for Tags
| Tag | Purpose |
|---|---|
minigames | Shared minigame plugins (BedWars, SkyWars, etc.) |
premium | Premium-only features |
development | Debug plugins for dev servers |
pvp | Combat-related plugins |
Group-Specific Templates
The traditional template folder named after your group:templates
bedwars
plugins
bedwars-plugin.jar
world
level.dat
region
Managing Templates
Adding Plugins
Place plugin JARs in the appropriate template folder:Configuring Plugins
- Start a server once to generate default configs
- Stop the server
- Copy configs from the
running/directory back to your template - Edit as needed
World Files
Place world folders in the template for a default map:templates
bedwars
world
level.dat
region
Caching
SimpleCloud caches certain files to speed up server starts:- Plugin remapping data (Paper)
- Downloaded dependencies
- Generated files
templates/cache/{group}/ and automatically managed.
If you’re having issues with outdated files, you can clear the cache folder for a group to force a fresh setup.
When to Use Each Template Level
| Template Level | Use For |
|---|---|
every/ | Plugins needed on every server |
every_{type}/ | Proxy-only or server-only plugins |
every_{software}/ | Software-specific plugins/configs |
_tagged/ | Shared features across multiple groups |
{group}/ | Group-specific files and worlds |
Templates and Persistent Servers
Templates are used for both group servers and persistent servers. The workflow runs on every server start, applying templates in the hierarchy order.Key Difference
| Aspect | Group Servers | Persistent Servers |
|---|---|---|
| Directory | Created fresh, deleted on stop | Permanent, survives restarts |
| Template application | Overwrites everything | Merges with existing files |
| World data | Lost on stop | Kept between restarts |
| Use case | Minigames, lobbies | SMP, Skyblock, builds |
How It Works for Persistent Servers
On each restart of a persistent server:- The workflow runs and applies templates
- New files from templates are added
- Existing files in the server directory are not overwritten (unless
replace: true) - World data and player data remain intact
When to Use What
| Scenario | Recommendation |
|---|---|
| Minigames (BedWars, SkyWars) | Group - fresh map each game |
| Lobby servers | Group - no persistent data needed |
| Proxies | Group - configuration only |
| Skyblock, SMP, Citybuild | Persistent Server - keeps world data |