Skip to content

sibercat/conan-exiles-startup-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conan Exiles Startup Manager

v0.0.15 — A Python-based monitoring tool for Conan Exiles dedicated servers.

Watches your server log in real time and handles the full startup/shutdown lifecycle: blocks player connections until the server is truly ready, detects hung processes, and sends Discord notifications at every stage.


Features

  • Port gating — blocks configured ports via Windows Firewall during startup and shutdown so players can't connect to a half-loaded server (optional, requires admin)
  • Zombie process detection — monitors the server process for hangs and can auto-kill it after a configurable timeout
  • Discord notifications — webhook-based status updates for every server state change; no bot token required
  • Startup delay — extra wait after load detection before opening ports, giving the server time to fully settle
  • Per-notification toggles — enable or disable each notification type individually
  • Rotating logs — detailed local logs with automatic rotation to keep disk usage in check

Requirements

  • Windows OS
  • Python 3.7+
  • Administrator privileges (only required if firewall port management is enabled)
  • Discord webhook URL (optional)

Setup

1. Install dependencies

pip install -r requirements.txt

2. Edit config/config.json

Key settings to configure before first run:

  • discord_webhook_url — your Discord webhook URL
  • discord_enabled — set to true to enable notifications
  • firewall_enabled — set to true to enable port blocking (requires admin)
  • server.name — displayed as the webhook username in Discord
  • startup_delay — seconds to wait after load detection before opening ports

3. Run the monitor

!start.cmd

When prompted, select your server's log directory. On a typical Steam install this is:

SteamLibrary\steamapps\common\Conan Exiles Dedicated Server\ConanSandbox\Saved\Logs

How It Works

The monitor watches ConanSandbox.log for specific state markers:

Server state Log pattern detected
Starting up Entered application state 'ConanSandboxStarting'
Fully loaded WorldPersistenceDone
Shutdown warning FPlatformMisc::RequestExit(0)
Network shutting down LogNet: World NetDriver shutdown
Fully stopped Entered application state 'ConanSandboxStopped'

When each marker is detected, the monitor updates firewall rules, sends a Discord notification, and transitions state accordingly. If the log file is recreated (new server instance), the monitor resets automatically.


Configuration

Full reference for config/config.json:

{
    "discord_enabled": true,
    "discord_webhook_url": "your-webhook-url-here",
    "server": {
        "name": "Conan Exiles Server",
        "logs_directory": "",
        "startup_delay": 30,
        "firewall_enabled": false,
        "zombie_detection": {
            "enabled": true,
            "timeout_minutes": 5,
            "auto_kill": true,
            "check_interval_seconds": 30
        },
        "ports": [
            {"port": 7777, "proto": "UDP"},
            {"port": 7777, "proto": "TCP"},
            {"port": 7778, "proto": "UDP"},
            {"port": 27015, "proto": "UDP"},
            {"port": 25575, "proto": "TCP"}
        ],
        "message_control": {
            "startup_notification": true,
            "loading_notification": true,
            "ready_notification": true,
            "shutdown_warning_notification": true,
            "network_shutdown_notification": true,
            "shutdown_final_notification": true,
            "monitor_stop_notification": true,
            "zombie_detected_notification": true,
            "zombie_killed_notification": true
        },
        "messages": {
            "startup": "[START] Server monitor starting up...",
            "loading": "[UPDATE] Server is starting up... Ports blocked for safety.",
            "ready": "[SUCCESS] Server is fully loaded and ready for connections!",
            "shutdown_warning": "[WARNING] Server is preparing to shut down...",
            "network_shutdown": "[WARNING] Server network is shutting down...",
            "shutdown_final": "[WARNING] Server has stopped...",
            "monitor_stop": "[STOP] Server monitor shutting down...",
            "zombie_detected": "[WARNING] Server process is not responding (zombie state detected)!",
            "zombie_killed": "[UPDATE] Zombie process was forcefully terminated."
        }
    }
}

Zombie Detection

Monitors server CPU activity. If the process reports zero CPU usage for longer than timeout_minutes, it is flagged as hung. With auto_kill: true the process is forcefully terminated and a Discord notification is sent. Set enabled: false to disable entirely.

Port Management

When enabled, ports are blocked at monitor start and whenever the server stops, and unblocked (after startup_delay seconds) once the server is fully loaded. Requires the monitor to run with administrator privileges.


Troubleshooting

Problem Fix
"needs administrator privileges" error Run !start.cmd as Administrator, or set firewall_enabled to false
Discord notifications not arriving Verify discord_webhook_url is correct and discord_enabled is true
Zombie detection triggering too early Increase timeout_minutes — a large map can keep CPU at 0% during loading
Monitor not detecting server state changes Confirm the selected log directory contains ConanSandbox.log
Detailed error information Check the logs/ directory for server_monitor.log and webhook_manager.log

About

A Python-based monitoring tool for Conan Exiles dedicated servers that provides complete server management functionality: preventing premature connections through port management, detecting and handling zombie processes during shutdown, and monitoring server status with Discord notifications.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors