Egg Repository

Pterodactyl Community Egg Repository

Nightingale

Nightingale is an open world survival crafting game, where you’ll adventure across the mysterious and dangerous Fae Realms. As a daring Realmwalker, you’ll defeat monstrous enemies, survive hostile environments, and build elaborate estates in a visually stunning Gaslamp Fantasy world.

Read Me

Nightingale

Nightingale is an open world survival crafting game, where you’ll adventure across the mysterious and dangerous Fae Realms. As a daring Realmwalker, you’ll defeat monstrous enemies, survive hostile environments, and build elaborate estates in a visually stunning Gaslamp Fantasy world

Author & Contributers

NameGithub Profile
brainsheadhttps://github.com/brainshead

Server Ports

Nightingale requires up to 1 ports

Portdefault
Game7777

This can be changed to any port.

Install Notes

RequirementsMemoryStorage
Minimal4GB15 GB
Recommended6-8+ GB40GB+

Settings

Most setting can be done by Panel Variable Settings.

Location of server Files : NWX/Config/ServerSettings.ini

Persistence (Saved Data)

Realm data is be stored in: NWX/Saved/Offline/DedicatedServer/Deploy

Character data is stored in: NWX/Saved/Offline//Profiles where

PlatformID is the Steam or Epic ID of each connecting user.

Backups

Copying the following directories to a backup location is sufficient to capture the state of a Nightingale dedicated server:

● NWX/Saved/Offline

● NWX/Saved/Config

● NWX/Config

The first time the dedicated server is launched on a particular weekday, it will copy the Offline

directory into the OfflineBackup directory.

Resetting Server Persistence

To reset the server to an empty state, remove the following directories:

● NWX/Saved/Offline

● NWX/Saved/Config

Enabling Cheats Mode on Clients

To enable debug/cheats, the client must be launched with the -EnableCheats commandline argument.

Players will need to authenticate with the admin password to use the cheats in-game

IMPORTANT

Also Server need to have Cheats enabled

Further Adjustements available

Status Endpoint (not built in egg )

To enable scraping server status from an http endpoint, add -statusPort= to the commandline, where is a port in the range 1024-65535.

Status can be scraped from the /status endpoint periodically.

By default this will bind to localhost only. To bind to a specific IP,

add -ini:Engine:[HTTPServer.Listeners]:+ListenerOverrides=(Port=,BindAddress=) to the commandline as well, or use 0.0.0.0 to bind to all available interfaces.

If the server is still loading and not yet ready for players, it will return a 503 Server Unavailable http status and a JSON object

Once the server is ready for players, it will return a 200 OK status and a JSON object

Mod Support

No Official Support!

Not tested

Yolks
NameTag
Debianghcr.io/ptero-eggs/steamcmd:debian
Variables and Startup

Startup Command

./NWX/Binaries/Linux/NWXServer-Linux-Shipping NWX -ini:Game:[/Script/Engine.GameSession]:MaxPlayers= {{MAX_PLAYER}} $( [ "$CHEATS" == "1" ] && printf %s '-EnableCheats' ) -port={{SERVER_PORT}} -multihome=0.0.0.0

Variables

Steam User

This is a required setting and cannot be set to anonymous.

Environment Variable: STEAM_USER
Default Value:
User Viewable:
User Editable:
Steam Password

Steam User Password

Environment Variable: STEAM_PASS
Default Value:
User Viewable:
User Editable:
Game ID

The ID corresponding to the game to download and run using SRCDS

Environment Variable: SRCDS_APPID
Default Value: 3796810
User Viewable:
User Editable:
Steam Auth

Steam account auth code. Required if you have 2fa enabled

Environment Variable: STEAM_AUTH
Default Value:
User Viewable:
User Editable:
Auto Update Server

This is to auto-update the game server

Environment Variable: AUTO_UPDATE
Default Value: 1
User Viewable:
User Editable:
Difficulty

Starting map difficulty, choose from [easy, medium, hard, extreme]. Used for the very first map, if one is not supplied from an imported character.

Environment Variable: Difficulty
Default Value: easy
User Viewable:
User Editable:
Password

By default the server will start with no password required for players to connect. It is recommended to set one to ensure only players you intend can connect.

Environment Variable: PASSWORD
Default Value: changeme
User Viewable:
User Editable:
Admin Password

If an admin password is set, players with the correct password can authenticate in-game in order to kick and ban other players.

Environment Variable: ADMIN_PASSWORD
Default Value: letmein
User Viewable:
User Editable:
Max players

By default Nightingale supports a maximum of six players in a realm. This maximum can bechanged through a command-line argument. Please note that increasing the maximum number of players past six is unsupported and may result in unintended behaviour.

Environment Variable: MAX_PLAYER
Default Value: 6
User Viewable:
User Editable:
Cheats Mode

To allow use of the cheat/debug menu and commands, add the enable cheats command-line argument. Players will need to authenticate with the admin password to use the cheats in-game.

Environment Variable: CHEATS
Default Value: 1
User Viewable:
User Editable:
Install Script
#!/bin/bash
# steamcmd Base Installation Script


## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
    echo -e "steam user is not set.\n"
    echo -e "Using anonymous user.\n"
    STEAM_USER=anonymous
    STEAM_PASS=""
    STEAM_AUTH=""
else
    echo -e "user set to ${STEAM_USER}"
fi

## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
cd /mnt/server/steamcmd

# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server

## install game using steamcmd

./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6

## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so

## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so

#Custom Commands

# Copy default server settings if none exist
if [ ! -f /mnt/server/NWX/Config/ServerSettings.ini ]; then
    cp /mnt/server/NWX/Config/ExampleServerSettings.ini /mnt/server/NWX/Config/ServerSettings.ini
    echo "ServerSettings.ini created from ExampleServerSettings.ini"
else
    echo "ServerSettings.ini already exists, keeping current settings."
fi

# Make sure file is executable
chmod +x /mnt/server/NWX/Binaries/Linux/NWXServer-Linux-Shipping


echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"
Installation Imageghcr.io/ptero-eggs/installers:debianInstallation Entrypointbash