Overview
Blueprints are reusable templates that define how game servers are installed, configured, and started. They encapsulate everything needed to deploy a specific game type (Minecraft, Rust, Valheim, etc.) without manual configuration.Pterodactyl Compatible
Import and export Pterodactyl egg format for ecosystem compatibility
Docker-Based
Each blueprint specifies Docker images with version options
Variable System
Customizable environment variables with validation rules
Installation Scripts
Automated installation with bash scripts and progress tracking
Blueprint Structure
Each blueprint contains:Metadata
- Name: Display name (e.g., “Vanilla Minecraft”)
- Description: What the server does
- Author: Blueprint creator
- Category: Game type (e.g., “minecraft”, “rust”, “survival”)
- Version: Pterodactyl metadata version (PTDL_v2)
- Features: Supported features (e.g.,
["steam_disk_space"])
Docker Configuration
Blueprints can specify multiple Docker images:Startup Configuration
Startup Command: Command to launch the game server with variable substitution:stop- Send “stop” command to console (Minecraft)SIGTERM- Send SIGTERM signal (most games)- Custom commands for specific games
STARTING to RUNNING.
Variables
Environment variables users can customize:text- Single-line inputtextarea- Multi-line inputboolean- Toggle switchinteger- Numeric input
Installation Script
Bash script to install/setup the game server:File Denylist
Files that cannot be modified or deleted via the file manager:Creating Blueprints
Administrators can create blueprints from Admin → Blueprints → Add Blueprint.Basic Information
- Name: “Vanilla Minecraft 1.20”
- Category: “minecraft”
- Description: “Official Minecraft server”
- Author: “Mojang”
Docker Images
Add one or more Docker images:
- Java 21:
ghcr.io/pterodactyl/yolks:java_21 - Java 17:
ghcr.io/pterodactyl/yolks:java_17
Startup Configuration
- Startup:
java -Xmx{{SERVER_MEMORY}}M -jar server.jar - Stop:
stop - Detection Patterns:
["Done (", "For help"]
Variables
Define customizable variables:
- SERVER_PORT (auto-filled from allocation)
- MINECRAFT_VERSION (user selects version)
- MAX_PLAYERS (configurable player limit)
Installation Script
Write bash script to download and configure the game server.Variables available:
${MINECRAFT_VERSION}${SERVER_PORT}/mnt/server(server file directory)
Importing Pterodactyl Eggs
StellarStack natively supports Pterodactyl egg format:- Navigate to Admin → Blueprints
- Click Import Egg
- Paste Pterodactyl egg JSON
- Click Import
- Parses egg structure
- Cleans Docker image escape sequences (
\/→/) - Converts variables to StellarStack format
- Creates a new blueprint
You can import eggs from the Pterodactyl Eggs repository for instant game support.
Export as Pterodactyl Egg
Export blueprints back to Pterodactyl format:- Open blueprint details
- Click Export as Egg
- Download JSON file
- Import into Pterodactyl panel
- Blueprint sharing between StellarStack instances
- Migration from/to Pterodactyl
- Version control of blueprint configurations
Using Blueprints
When creating a server, users:- Select Blueprint: Choose from available templates
- Choose Docker Image: Pick from blueprint’s image options
- Configure Variables: Set environment variables (version, port, etc.)
- Allocate Resources: Define CPU, RAM, disk limits
- Deploy: Panel creates server using blueprint configuration
Variable Substitution
The panel replaces variable placeholders in the startup command: Blueprint Startup:{{SERVER_MEMORY}}- Allocated memory in MB{{SERVER_PORT}}- Primary allocation port- Custom variables from blueprint definition
Blueprint Categories
Organize blueprints by game type:- minecraft - Minecraft variants (Vanilla, Paper, Forge, Fabric)
- rust - Rust game servers
- source - Source engine games (CS:GO, TF2, Garry’s Mod)
- voice - Voice servers (TeamSpeak, Mumble)
- other - Miscellaneous game types
Startup Detection
Blueprints define patterns to detect when a server is ready:Pattern Matching
The daemon monitors console output for these patterns: Minecraft Example:RUNNING.
Rust Example:
No Detection Patterns
If a blueprint has no startup patterns:- Server immediately transitions to
RUNNINGwhen container starts - No waiting for specific console output
- Useful for simple services or testing
Advanced Features
User Interaction Patterns
Detect when server requires user input:- Alert administrators
- Auto-respond via console
- Pause installation until manual intervention
ANSI Stripping
Remove color codes from console output:File Configuration
Automatically edit configuration files:Public vs Private Blueprints
- Public: Visible to all users, available for server creation
- Private: Only admins can see and use
- Testing new configurations
- Custom/proprietary game servers
- Templates not ready for general use
Editing Blueprints
Administrators can modify existing blueprints:- Navigate to Admin → Blueprints
- Click Edit on target blueprint
- Modify configuration (variables, Docker images, scripts)
- Save changes
Changes to blueprints do NOT affect existing servers. Only new servers use the updated blueprint.
- Edit the blueprint
- Navigate to server → Settings
- Click Reinstall Server
- Server re-runs installation with new blueprint
Deleting Blueprints
Remove unused blueprints:- Navigate to Admin → Blueprints
- Click Delete on target blueprint
- Confirm deletion
Best Practices
Use Descriptive Names
Use Descriptive Names
Name blueprints clearly:
- ✅ “Vanilla Minecraft 1.20 (Java 21)”
- ❌ “Minecraft”
Test Installation Scripts
Test Installation Scripts
Before deploying:
- Test scripts in a local Docker container
- Verify all downloads work
- Confirm startup detection patterns trigger
Provide Multiple Docker Images
Provide Multiple Docker Images
Offer version choices:
- Java 21, Java 17, Java 11 for Minecraft
- Different Node.js versions for bots
- Gives users flexibility without multiple blueprints
Validate Variables
Validate Variables
Use validation rules:
required|string|min:3for server namesrequired|integer|between:1000,65535for portsrequired|booleanfor toggles
Document Variables
Document Variables
Write clear descriptions:
- ✅ “Minecraft version to install (e.g., 1.20.4, latest)”
- ❌ “Version”