Skip to content

Eggs

Eggs are game server configuration templates that define how a server is installed, started, and configured. Each egg belongs to a nest - a category that groups related eggs together.


Concepts

An egg defines everything needed to run a particular type of game server:

  • Docker Image(s) - the container image(s) used to run the server on Linux nodes.
  • Startup Command - the command executed inside the container to launch the game server. Supports variable substitution (e.g., java -Xms128M -XmxM -jar server.jar).
  • Install Script - a shell script that runs during initial server provisioning to download game files, configure defaults, and prepare the environment.
  • Stop Command - the command sent to the server process for graceful shutdown (e.g., stop for Minecraft).
  • Environment Variables - configurable variables that users can modify (server version, game mode, max players, etc.).
  • Default Port - the default port number for this game type, used to suggest matching allocations during server creation.
  • Windows Support - optional Windows-specific startup command, install script (PowerShell), and SteamCMD app ID.

Importing Eggs from JSON

BadgerPanel ships with pre-built eggs and supports importing additional ones. Egg JSON files are compatible with the Pterodactyl egg format.

  1. Navigate to Admin > Eggs and click Import Egg.
  2. Upload a JSON file or paste the JSON content.
  3. Select the target nest. If the nest does not exist, the import creates it automatically.
  4. Click Import. The egg and its variables are created.

Pre-Built Eggs

The following eggs are included with BadgerPanel:

EggDescription
Minecraft Java EditionVanilla Minecraft server with configurable version and memory
Minecraft PaperHigh-performance PaperMC server with build selection
SteamCMD GenericGeneric template for any SteamCMD-based game, configurable via Steam App ID

Creating a Custom Egg

  1. Navigate to Admin > Eggs and click New Egg.
  2. Select or create the parent nest.
  3. Fill in the egg details:
    • Name and Description - displayed to users during server creation.
    • Docker Images - one or more image options. Each entry has a display name and image reference (e.g., ghcr.io/badgerpanel/yolks:java_21).
    • Startup Command - the command template with placeholders.
    • Stop Command - the string sent to stdin for graceful shutdown.
  4. Configure the Install Script:
    • Script Container - the Docker image used to run the install script (default: alpine:3.18).
    • Script Entry - the interpreter (default: bash).
    • Script Content - the shell script body.
  5. Add Variables (see below).
  6. Set the Default Port if applicable.
  7. Optionally configure Windows fields for dual-OS support.
  8. Click Save.

Egg Variables

Variables are the configurable parameters exposed to server owners. Each variable has:

FieldDescription
NameDisplay name shown in the UI
Environment VariableThe variable name passed to the container (e.g., SERVER_VERSION)
Default ValueThe value used if the user does not provide one
RulesValidation rules (required, string, numeric, regex patterns)
User ViewableWhether the variable is visible to non-admin users
User EditableWhether non-admin users can change the value

Variables are injected into the startup command and made available as environment variables inside the container.


Editing an Egg

Navigate to Admin > Eggs > [egg]. All fields are editable. Changes to Docker images, startup commands, or variables apply to newly created servers. Existing servers retain their current configuration unless you trigger a reinstall.


Windows Support

Each egg can optionally support Windows nodes. To enable Windows support, configure the Windows-specific fields:

  • Windows Startup Command - the startup command for Windows nodes
  • Windows Install Script - a PowerShell script for initial provisioning
  • Windows Script Entry - the script interpreter (default: powershell)
  • Windows SteamCMD App ID - for games installed via SteamCMD

Eggs that support both Linux and Windows can be deployed to either type of node.


Pterodactyl Compatibility

BadgerPanel supports importing and exporting eggs in the Pterodactyl JSON format. This allows you to use the extensive library of community-created Pterodactyl eggs. Imported eggs may need minor adjustments to variables or Docker images depending on your environment.


Next Steps

BadgerPanel Documentation