Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Source Engine Egg

A Source engine egg for Pelican and Pterodactyl, using the same container/node setup pattern as S2Script CS2 Egg. Choose CS:GO, CS:S, DOD:S, L4D2, or TF2 from one game dropdown.

Included: latest stable Metamod:Source, latest SourceMod prerelease, shared base-game VPKs, central framework caching/pins, game-specific updates/restarts, Discord events, password scopes, node console archives and crash bundles. Optional node modules provide backups/restore, cleanup, resource metrics/Prometheus/top, host maintenance and verified node self-updates. Workshop/map caching and the CS2 connection guard are excluded.

Release versions come from the GitHub release tag. The bootstrap selects a published stable release and the egg defaults to :stable; use :beta for testing releases. Wait for the release workflow to publish the node assets and image before installing. This is an initial implementation; live-game acceptance and remaining features are tracked separately.

1. Set up the node (optional)

For shared game files, do this before creating servers. Run on the Wings node, not the web-panel machine:

curl -fsSL https://raw.githubusercontent.com/edgegamers/source-egg/main/scripts/install-node.sh | bash

The bootstrap verifies the release checksum, installs missing host SteamCMD runtime libraries on Debian/Ubuntu, and opens the Source node setup wizard with sudo. Choose VPK sharing, framework caching and game predownloads, then restart/password/webhook policies and optional operations modules. No Go or Python is needed on the node. Host maintenance starts in dry-run mode.

Use an interactive SSH terminal on Linux x86-64 with Docker/Wings, sudo access, kernel 5.12+, and enough disk for the selected games plus update staging. Debian 12+ or Ubuntu 22.04+ is recommended. The node can be installed with zero servers: choose games to predownload, or none to download each game when its first server starts.

For beta:

curl -fsSL https://raw.githubusercontent.com/edgegamers/source-egg/main/scripts/install-node.sh | SOURCE_NODE_CHANNEL=beta bash

For an unattended install, append | bash -s -- --yes instead of | bash; it retains existing settings or uses defaults. An exact initial tag can be selected with SOURCE_NODE_RELEASE=v1.2.3. Node setup and update guide.

The daemon discovers matching containers automatically, including servers created later. There is no per-server registration command or manual panel mount.

sudo sourcenode status
sudo sourcenode doctor
journalctl -u sourcenode -f

Wait for any selected game predownloads to finish before creating servers. Rerun sudo sourcenode install to change wizard choices; rerun the verified bootstrap to upgrade the node binary while keeping saved configuration.

2. Import the egg in the panel

In Pelican's admin egg importer, choose Import from URL and paste:

https://raw.githubusercontent.com/edgegamers/source-egg/main/pterodactyl/source-egg.json

For Pterodactyl, download the JSON and import the file if your panel has no URL option. The export includes the square Source-logo picture for Pelican.

Create a server, select its Game before the first start, allocate the game port and any required extra ports, and set STEAM_GSLT where needed. Current standalone CS:GO uses client/auth app 4465480 and dedicated download app 740. Do not select CS2's legacy branch.

Use ghcr.io/edgegamers/source-egg:stable for stable releases, or :beta for the newest published release including prereleases. Start it: the entrypoint installs the selected game, Metamod and SourceMod. The short panel installation script is intentional; with node-managed files, the container skips its own SteamCMD game download.

Prefer standalone? Skip step 1. SOURCE_MODE=auto installs into the server's own volume when no node is present. An already shared installation requires a working node/mount and does not silently write through shared links. Server installation guide.

3. Choose framework and password settings

Panel variable Default Purpose
SOURCE_GAME CS:S Select CS:GO, CS:S, DOD:S, L4D2 or TF2 before installation
INSTALL_METAMOD 1 Install/check latest stable Metamod
METAMOD_VERSION empty Optional exact upstream release tag
INSTALL_SOURCEMOD 1 Install/check latest SourceMod prerelease
SOURCEMOD_VERSION empty Optional exact upstream release tag
STEAM_GSLT empty Game Server Login Token where required
GENERATE_PASSWORD 0 Opt into node-generated join passwords for dev servers
PASSWORD_SCOPE default Follow node policy or select game, server, or node

SourceMod automatically requires Metamod. Framework upgrades preserve private configs, custom changes and disabled stock plugins. Exact version pins never silently become latest.

Server owners can manage third-party plugins from public GitHub/private GitLab releases or compile SourcePawn directly from individual repositories using .source/plugins.json and egg plugins panel console commands. Set "auto_approve": true to install ready packages automatically at normal startup, or retain exact-package manual approval. Repository recipes use a pinned SourceMod compiler and declared include dependencies; branches/releases can track updates or be pinned to exact versions. No node access or plugin CI pipeline is needed. Per-server plugin configuration, source builds, updates and rollback.

The fresh-install password policy offers one join password per server, using EFF words and monthly rotation after opt-in. The wizard also supports per-game/node sharing and cron schedules with a timezone. Existing nodes retain their saved per-game/token/hour policy. Password generation is opt-in at both node and server; RCON credentials remain separate.

sudo sourcenode passwords show FULL_SERVER_UUID

Ordinary webhooks exclude passwords. Optional password delivery uses a separately configured private webhook. Passwords, pins, rollback and operations.

For a dev node sharing one public address, use Docker bridge networking with separate allocated ports. Keep an existing working Wings network configuration.

Node guide · Server/operations guide · Build and test from source · Implementation status

Node operations and full CLI · Complete configuration reference · Server controls.

The installer follows the upstream wizard's sections, help, settings review and progress, with EdgeGamers/Source 1 terminal artwork. It exposes file retention, filters, framework locks, maintenance and password scheduling. Operator commands show readable tables; add --json for scripts. Install a matched node/image/egg release for new server features; live five-game acceptance remains a separate release gate.

GPL-3.0-or-later. Runtime helpers retain attribution to K4ryuu/CS2-Egg-Go and S2Script contributors; see LICENSE and NOTICE.

Publishing a release

Create a GitHub release from the intended commit with a tag such as v1.2.3. Leave Set as a pre-release unchecked for stable, or check it for a test release such as v1.3.0-rc.1. Publish and wait for Actions to finish.

Actions tests the code, builds both programs with the tag's version, attaches the node binary/checksums and egg JSON, and publishes the versioned image plus eligible stable/beta aliases. No per-release version-file or installer edits are needed. Publishing a release is separate from pushing source code.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages