Skip to content

Launch Day Checklist

This is the finish line. Before your game servers go live, walk through this checklist to catch the issues that cause launch-day failures.

  • Set a launch date on that is early in the week so that any major bugs can be addressed before the weekend starts. We highly recommend a Tuesday or at latest Wednesday.
  • Set a launch time that best reflects your team’s early morning availability.
  • Understand that Steam and other 3rd parties often have a slow cache refresh so hitting the target time perfectly is not always a guarantee. Plan to start some of those processes early so players aren’t waiting.
  • Server builds and runs on Linux (not just Windows)
  • Server runs headless without a GPU or display
  • Server starts within 60 seconds
  • Server binary is stripped of debug symbols/code mapping
  • Server build does not contain client-only assets (textures, audio, UI)
  • Server handles SIGTERM and shuts down gracefully
  • Graceful shutdown completes within 10 seconds
  • Server exits with code 0 on clean shutdown
  • Server exits with non-zero code on crash
  • No data loss on graceful shutdown
  • Config files use a standard format (JSON, YAML, TOML)
  • All config options are documented (type, range, default)
  • Port numbers are configurable via startup arguments
  • Server binds to 0.0.0.0 or custom IP, not just 127.0.0.1
  • Server works on non-default ports
  • All required ports are documented (port number, protocol, purpose)
  • Server works in a shared hosting environment (non-default ports)
  • Game client supports connecting to non-default ports
  • Query protocol responds correctly (if implemented)
  • STDOUT produces “server online” and “server stopping” events
  • Player join/leave events include platform IDs
  • STDIN accepts at minimum: stop, save, status, list, kick, ban
  • Console commands return execution results/feedback (not silent)
  • Save files are in a predictable, configurable location
  • Auto-save runs at regular intervals (5-15 minutes)
  • Save writes are atomic (temp file then rename)
  • Backup rotation keeps previous saves
  • Server detects and recovers from dirty shutdown
  • Worlds can be moved between servers (portability)
  • Server verifies player identity server-side (not trusting the client)
  • Invalid authentication results in disconnect, not fallback mode
  • Auth failures are logged with relevant details
  • Players are tracked by platform ID, not username
  • Ban system supports permanent and timed bans
  • Player data is stored in JSON in a known location
  • Server is downloadable without purchasing the game (if using SteamCMD, anonymous access is enabled)
  • Version is identifiable (version.txt, —version flag, or manifest)
  • Update process is documented for hosting providers
  • Share resource requirements with hosting providers (CPU, RAM, disk per server instance)
  • Test deployment on your primary hosting provider (Nodecraft, etc.)
  • Verify the download/install pipeline works end-to-end
  • Confirm update automation works (SteamCMD update, archive replacement)
  • Provide hosting-specific documentation (ports, configs, startup arguments)
  • If supporting mods at launch, verify mod installation works on hosted servers
  • Someone on the team is monitoring server logs during launch
  • Crash reporting is active and sending data to your team
  • You have a process for pushing an emergency server update if needed
  • Communication channel with hosting providers is active (for urgent issues)

Failures we’ve seen repeatedly across game launches:

Hour 0-4: Watch for crashes, connection failures, and auth issues. These show up immediately under load.

Hour 4-24: Watch for memory leaks, save corruption, and performance degradation under sustained load. These emerge as servers run longer than your test sessions.

Hour 24-48: Watch for long-running session stability. Some bugs only appear after 24+ hours of continuous operation.

When to push the first patch: Unless there’s a critical bug (crash, data loss, security), wait 24 hours before pushing a server update. Hosting platforms need time to stabilize their deployments, and a rapid cycle of updates during launch creates more problems than it solves.