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 |
Troubleshooting
Template changes not applied
Template changes not applied
Symptom: New servers don’t include your template changes.Solution:
- Verify files are in the correct template directory
- Check if a later template is overwriting (hierarchy order)
- Clear cache:
rm -rf templates/cache/{group}/ - Start a new server (running servers don’t update)
Existing servers don't get updates
Existing servers don't get updates
Symptom: Template changes only affect new servers, not existing ones.Cause: Templates are applied at server creation, not during runtime.Solution:
- Group servers: Stop the old server, start a new one
- Persistent servers: Manually update files or delete specific files so templates can replace them
Plugin not loading
Plugin not loading
Symptom: Plugin in template doesn’t load on server.Solution:
- Check file permissions on the JAR
- Verify the file exists in server’s
plugins/directory - Check server logs for load errors
- Verify plugin compatibility with server software
Cache causing outdated files
Cache causing outdated files
Symptom: Updated plugins or configs not applying to servers.Cause: Old files cached in New servers will rebuild from templates.
templates/cache/{group}/.Solution:Tagged templates not applied
Tagged templates not applied
Symptom: Files from
_tagged/ folder not appearing on servers.Solution:- Verify tag is assigned to the group in settings
- Check folder name matches exactly (case-sensitive)
- Ensure workflow includes
for-eachstep for tags
Files being overwritten unexpectedly
Files being overwritten unexpectedly
Symptom: Your config keeps getting replaced by another template.Cause: Template hierarchy applies in order:
every/ → every_{type}/ → every_{software}/ → _tagged/ → {group}/Solution:- Move your file to a more specific template level
- Or use
replace: falsein a custom workflow step