Overview
Nests are categories of game server types (e.g., Minecraft, Source Engine, Voice Servers).Eggs are specific server configurations within a nest (e.g., Minecraft Java, Minecraft Bedrock, Forge, Paper). Together, they define:
- Docker images to use
- Startup commands
- Environment variables
- Installation scripts
- File configuration
Nests
What is a Nest?
A nest groups related eggs together. For example:Creating a Nest
1
Navigate to nests
Go to Admin > Nests in the panel.
2
Create nest
Click Create Nest and provide:Name (required)
- The nest category name
- Example: “Minecraft”, “Source Engine”, “Voice Servers”
- Brief explanation of what servers this nest contains
- Example: “Minecraft Java and Bedrock servers”
- Your email or organization name
- Used for credits and egg attribution
3
Add eggs
After creating the nest, add eggs to define specific server types.
Managing Nests
Viewing Eggs Click on a nest name to see all eggs it contains. The badge shows the egg count:Eggs
What is an Egg?
An egg is a complete server configuration that defines:- Docker Image: Container image to run the server
- Startup Command: Command to start the server
- Environment Variables: Configurable settings
- Install Script: Script to install/update the server
- Configuration Files: Files to parse and modify
Creating an Egg
1
Navigate to a nest
Go to Admin > Nests and click on a nest name.
2
Import or create egg
You can either:Import from JSON
- Click Import Egg
- Upload an egg JSON file
- The egg is created with all settings
- Click Create Egg
- Fill in all configuration details
Egg Configuration
Basic Settings
- Specifies the container environment
- Must be available in a Docker registry
- Common registries:
ghcr.io,docker.io
- Command to start the server process
- Use
{{VARIABLE}}for environment variables - Runs inside the container
Environment Variables
Variables allow server customization without editing the egg.1
Add variable
In the egg editor, scroll to Environment Variables and click Add Variable.
2
Configure variable
Name: Display name (e.g., “Server JAR File”)
Description: Help text for users
Environment Variable: Internal name (e.g.,
Default Value: Initial value (e.g.,
Validation Rules: Optional regex or rules (e.g.,
User Editable: Users can change this variable
Description: Help text for users
Environment Variable: Internal name (e.g.,
SERVER_JARFILE)Default Value: Initial value (e.g.,
server.jar)Validation Rules: Optional regex or rules (e.g.,
required|string)User Viewable: Users can see this variableUser Editable: Users can change this variable
3
Use in startup command
Reference the variable in the startup command:
Install Script
The install script runs when a server is created or reinstalled.- Container: Docker image for installation (e.g.,
ghcr.io/pterodactyl/installers:alpine) - Entrypoint: Shell to use (e.g.,
ash,bash) - Script: Installation commands
Egg Variables Reference
Stop Command
Defines how to gracefully stop the server:SIGTERM.
Exporting Eggs
Share egg configurations with others:1
Navigate to egg
Go to Admin > Nests > [Nest Name] and click on an egg.
2
Export
Click Export Egg to download a JSON file containing:
- All egg settings
- Environment variables
- Install script
- Docker configuration
3
Share or backup
Use the exported file to:
- Backup egg configurations
- Share with other panel instances
- Version control egg changes
Importing Eggs
Add pre-made eggs from the community:1
Find egg JSON
Download eggs from:
- Pterodactyl Community Eggs
- Other panel administrators
- Your backups
2
Import to nest
- Navigate to Admin > Nests
- Click on the target nest
- Click Import Egg
- Upload the JSON file
3
Review and adjust
After import:
- Review environment variables
- Test the install script
- Adjust Docker image if needed
Example: Minecraft Paper Egg
Best Practices
Organizing Nests
✅ Group by game/softwareVariable Design
✅ User-friendly defaults- Set sensible defaults
- Make common settings editable
- Hide advanced variables
- Don’t make every variable user-editable
- Hide internal variables
- Limit dangerous settings
Install Scripts
✅ Robust scripts- Check for errors
- Validate downloads
- Provide progress output
Troubleshooting
Server won’t start
Check:- Docker image exists and is accessible
- Startup command syntax is correct
- Required variables are defined
- Install script completed successfully
Install script fails
Common causes:- Network connectivity issues
- Invalid download URLs
- Insufficient disk space
- Missing dependencies in container
Variables not substituting
Ensure:- Variable names match exactly (case-sensitive)
- Variables are defined in the egg
- Syntax is
{{VARIABLE}}not$VARIABLE
Related Resources
Nodes
Deploy eggs on Wings nodes
Server Management
Create servers using eggs