a screenshot of the Task Manager after 10 hours of operation?
and the GameServer.log file from the last hour before the lag occurred?
then I can accurately determine if it's a memory leak or a database overload and prepare a complete automated maintenance script for you.
Create the file:
- Open Notepad.
- Paste the BAT code above.
- Save as: romio100.bat
- Save as type: All Files
- Encoding: UTF-8 or ANSI
- Place the file in the same folder as GameServer.exe (e.g. D:\Silkroad\Server\GameServer\)
Run the file:
- Right-click romio100.bat → Run as administrator.
- Enter the password when prompted (input is hidden). Default password: romio100_secret
- You have 3 attempts. On success the script will start GameServer.exe and automatically restart it every 6 hours.
Change restart interval:
- Edit the script and set SLEEP_SECONDS to:
- 3 hours = 10800
- 6 hours = 21600 (default)
- 12 hours = 43200
@

off
title romio100 - Protected AutoRestart GameServer
color 0a
setlocal enabledelayedexpansion
:: ================================================
:: romio100.bat - Script to auto-restart GameServer
:: Protected by a password stored as a SHA-256 hash
:: ================================================
:: ----- CONFIG -----
set "EXPECTED_HASH=d6a66a2bd6d9380652c6d026d7b302e6adb 723a006df0deff58e78dfce66a239"
:: ↑ SHA-256 hash for the default password: romio100_secret
:: To change it, generate a new SHA-256 hash (see instructions below) and replace this value.
set "ATTEMPTS=3" :: Allowed password attempts
set "SLEEP_SECONDS=21600" :: 21600 seconds = 6 hours before restart
:: ------------------
echo ===============================================
echo romio100 - Protected AutoRestart GameServer
echo ===============================================
echo.
:: ----- Password check -----
set /a "tries=0"

rompt_loop
set /a "tries+=1"
if %tries% gtr %ATTEMPTS% (
echo Too many failed attempts. Exiting.
timeout /t 3 >nul
exit /b 1
)
:: Ask for password securely and compute SHA-256 via PowerShell
for /f "usebackq delims=" %%H in (`powershell -NoProfile -Command ^
"$p = Read-Host -AsSecureString 'Enter password'; ^
$bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($p); ^
$plain = [Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr); ^
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr); ^
$hash = [System.BitConverter]::ToString([System.Security.Cryptography.SHA256]::Create().ComputeHash([System.Text.Encoding]::UTF8.GetBytes($plain))).Replace('-','').ToLower(); ^
Write-Output $hash"`) do set "INPUT_HASH=%%H"
if /i "%INPUT_HASH%"=="%EXPECTED_HASH%" (
echo Authentication successful.
goto :auth_ok
) else (
echo Wrong password. Attempts left: %ATTEMPTS% - %tries%
echo.
goto

rompt_loop
)
:auth_ok
echo.
echo Starting protected AutoRestart loop for GameServer...
echo.
:: ----- Auto-restart loop -----
:loop
echo [%date% %time%] Starting GameServer...
start "" "GameServer.exe"
echo [%date% %time%] Waiting %SLEEP_SECONDS% seconds before restart...
timeout /t %SLEEP_SECONDS% >nul
echo [%date% %time%] Restarting GameServer...
taskkill /im GameServer.exe /f 2>nul
goto loop
:: ================================================
Place the patch and the game server in the same folder and run them as administrator.
you won't have to do anything; the patch will do everything. All you have to do is run the patch as an administrator, and it will restart the game server every 6 hours. This is a temporary solution.