Skip to content

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.

egg-nightingale.json

updated

Ports

Add an allocation on the node for each port.

  • Game 7777

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Steam app
3796810
Steam login
optional
Install script
56 lines

Image

  • Ubuntu 24 ghcr.io/ptero-eggs/steamcmd:ubuntu_24.04

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

10 variables

Startup command

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

Dotted values come from the server settings. These values are examples.

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

    STEAM_USERUsers cannot see

    nullable|string

  • Steam User Password

    STEAM_PASSUsers cannot see

    nullable|string

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

    SRCDS_APPIDUsers cannot see

    string

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

    STEAM_AUTHUsers cannot see

    nullable|string|max:5

  • This is to auto-update the game server

    AUTO_UPDATEUsers can edit

    required|boolean

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

    DifficultyUsers can edit

    required|in:easy,medium,hard,extreme

  • 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.

    PASSWORDUsers can edit

    nullable|max:20

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

    ADMIN_PASSWORDUsers can edit

    required|string|max:20

  • 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.

    MAX_PLAYERUsers can edit

    required|numeric

  • 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.

    CHEATSUsers can edit

    required|boolean

Wings

Stop command
^C (SIGINT)
Running when the console shows
Game mode became ready

Files Wings edits

Wings sets these values in these files before each start.

NWX/Config/ServerSettings.ini file

StartingDifficulty
StartingDifficulty={{server.build.env.Difficulty}}
Password
Password={{server.build.env.PASSWORD}}
AdminPassword
AdminPassword={{server.build.env.ADMIN_PASSWORD}}

Readme

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

Name Github Profile
brainshead https://github.com/brainshead

Server Ports

Nightingale requires up to 1 ports

Port default
Game 7777

This can be changed to any port.

Install Notes

Requirements Memory Storage
Minimal 4GB 15 GB
Recommended 6-8+ GB 40GB+

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

Changes

  1. Nightingale: Fix startup command (#425)

    · brainshead · 41a4aeb

  2. Add: Nightingale

    · brainshead · 19a9f77

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 56 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/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 "-----------------------------------------"