اما راهاندازی سرور Icarus یک تفاوت مهم با بسیاری از بازیهای آنلاین دارد: روشن بودن سرور به معنی اجرا شدن World نیست. ممکن است سرور در فهرست Dedicated Servers دیده شود، ولی بازیکنان به جای ورود به بازی، وارد Server Lobby شوند. گاهی هم سرور بعد از چند دقیقه به Lobby برمیگردد، Save قبلی را پیدا نمیکند یا به دلیل بسته بودن پورتها، بازیکنان نمیتوانند متصل شوند.
در این آموزش، نصب ابزار فعلی Icarus Dedicated Server با SteamCMD، تنظیم Session و Prospect، پورتهای اتصال، انتقال Save، بهروزرسانی سرور و عیبیابی مشکلات رایج را بررسی میکنیم. مثالهای اجرایی روی Windows Server هستند؛ زیرا راهنمای نصب رسمی RocketWerkz این محیط را مبنا قرار داده است.
وضعیت ابزار: مرجع رسمی راهاندازی سرور همچنان مخزن IcarusDedicatedServer متعلق به RocketWerkz است. برای نصب، از SteamCMD و App ID شماره 2089300 استفاده میشود. بهتر است به جای تکیه بر شماره نسخهای که ممکن است قدیمی شود، هنگام نصب و هر بهروزرسانی، Build فعلی را از Steam دریافت کنید.
Icarus Dedicated Server چیست و چه تفاوتی با Host معمولی دارد؟
در حالت Host معمولی، یکی از بازیکنان Session را اجرا میکند و دیگران به بازی او متصل میشوند. این روش برای بازی کوتاهمدت مناسب است، اما برای گروههایی که در ساعتهای متفاوت آنلاین میشوند محدودیت دارد.
Dedicated Server یک فرایند مستقل است که روی سیستم جداگانه اجرا میشود. بازیکنان میتوانند به آن متصل شوند، World را بارگذاری کنند و با توجه به تنظیمات دسترسی، فعالیت مشترک داشته باشند.
مزیتهای اصلی این روش عبارتاند از:
- عدم وابستگی اجرای سرور به روشن بودن کامپیوتر یکی از بازیکنان.
- امکان مدیریت رمز ورود و دسترسی ادمین.
- کنترل روی تعداد بازیکنان و پورتهای شبکه.
- قابلیت ادامه دادن Prospect ذخیرهشده.
- امکان تهیه Backup از فایلهای World و تنظیمات.
- امکان اجرای سرور روی VPS یا سرور اختصاصی با منابع قابل ارتقا.
البته Dedicated Server به تنهایی تضمین نمیکند که یک World برای همیشه فعال بماند. تنظیمات Shutdown و وضعیت Prospect تعیین میکنند چه زمانی سرور به Lobby برگردد.
برای ساخت سرور Icarus چه منابعی لازم داریم؟
Icarus یک بازی Survival با محیط سهبعدی، ساختوساز، موجودات و فعالیتهای همزمان بازیکنان است. بنابراین مصرف منابع با بزرگتر شدن پایگاه، تعداد بازیکنان و پیچیدگی World افزایش پیدا میکند.
جدول زیر برای انتخاب اولیه منابع پیشنهاد میشود و نباید آن را حداقل سختافزاری رسمی RocketWerkz در نظر گرفت.
| نوع استفاده | RAM پیشنهادی | CPU پیشنهادی | توضیح |
|---|---|---|---|
| تست اولیه و گروه کوچک | ۸ گیگابایت | ۴ vCPU | برای شروع و بررسی عملکرد واقعی |
| Open World چندنفره | ۱۲ گیگابایت | ۴ vCPU سریع | مناسب شروع برای World فعال و طولانیمدت |
| World سنگین و ساختوساز زیاد | ۱۶ گیگابایت یا بیشتر | ۴ تا ۶ vCPU قدرتمند | نیازمند پایش CPU و حافظه |
بهتر است سرور دارای SSD یا NVMe باشد. هنگام انتخاب VPS نیز فقط تعداد هستهها را ملاک قرار ندهید؛ سرعت پردازش هر هسته و پایداری منابع اهمیت زیادی دارد.
در تنظیمات رسمی Icarus، مقدار MaxPlayers بین ۱ تا ۸ تعریف شده است. بنابراین افزایش RAM به معنی امکان افزایش نامحدود تعداد بازیکنان نیست.
نصب Icarus Dedicated Server با SteamCMD
برای دریافت ابزار رسمی سرور به خرید نسخه جداگانه بازی نیاز ندارید. طبق راهنمای RocketWerkz، فایلهای Dedicated Server از طریق SteamCMD و ورود Anonymous قابل نصب هستند.
مرحله اول: دریافت SteamCMD
ابتدا SteamCMD را با استفاده از راهنمای رسمی SteamCMD در Valve Developer Community نصب کنید.
برای این آموزش فرض میکنیم SteamCMD در مسیر زیر قرار دارد:
C:\SteamCMD\
مرحله دوم: نصب فایلهای Icarus Server
SteamCMD را اجرا کنید و دستورات زیر را به ترتیب وارد کنید:
force_install_dir C:\IcarusServer
login anonymous
app_update 2089300 validate
quit
شناسه 2089300 مربوط به Dedicated Server بازی Icarus است. گزینه validate فایلهای نصب را بررسی میکند و فایلهای اصلی ناقص یا تغییرکرده را در صورت نیاز دوباره دریافت میکند.
میتوانید همین عملیات را از CMD نیز اجرا کنید:
C:\SteamCMD\steamcmd.exe +force_install_dir C:\IcarusServer +login anonymous +app_update 2089300 validate +quit
مرحله سوم: اجرای اولیه Dedicated Server
فایل اجرایی سرور IcarusServer.exe نام دارد. در نصب معمول، آن را در مسیر زیر پیدا میکنید:
C:\IcarusServer\Icarus\Binaries\Win64\IcarusServer.exe
یک فایل با نام start-icarus.bat بسازید و کد زیر را داخل آن قرار دهید:
@echo off
cd /d C:\IcarusServer\Icarus\Binaries\Win64
IcarusServer.exe -Log -PORT=17777 -QueryPort=27015 -SteamServerName="Iranica Icarus"
pause
اگر ساختار فایلهای نصب شما متفاوت است، مسیر فایل اجرایی را مطابق نصب خودتان اصلاح کنید.
پارامتر -Log پنجره Log را هنگام اجرا نمایش میدهد. این قابلیت برای بررسی خطاهای Startup بسیار مفید است.
مرحله چهارم: ایجاد فایل تنظیمات
طبق راهنمای رسمی، ممکن است فایل ServerSettings.ini پس از اولین ورود به Lobby یا اجرای Prospect ساخته شود. اگر فایل هنوز وجود ندارد، میتوانید نمونه تنظیمات رسمی را از مخزن سازنده دریافت کنید.
مشاهده فایل نمونه ServerSettings.ini در GitHub
تنظیم ServerSettings.ini برای یک سرور خصوصی
فایل اصلی تنظیمات سرور در مسیر زیر قرار میگیرد:
%LOCALAPPDATA%\Icarus\Saved\Config\WindowsServer\ServerSettings.ini
این مسیر مربوط به حساب کاربری Windows است که سرور را اجرا میکند. اگر سرور را با حساب دیگری یا بهصورت سرویس اجرا کردهاید، پوشه LocalAppData همان حساب را بررسی کنید.
همچنین پارامتر -UserDir میتواند محل ذخیره اطلاعات را تغییر دهد. بنابراین هنگام عیبیابی مطمئن شوید فایل تنظیمات درست را ویرایش میکنید.
نمونه تنظیمات پیشنهادی
[/Script/Icarus.DedicatedServerSettings]
SessionName=
JoinPassword=CHANGE_JOIN_PASSWORD
MaxPlayers=4
AdminPassword=CHANGE_ADMIN_PASSWORD
ResumeProspect=True
LastProspectName=
LoadProspect=
CreateProspect=
ShutdownIfNotJoinedFor=300.000000
ShutdownIfEmptyFor=300.000000
AllowNonAdminsToLaunchProspects=False
AllowNonAdminsToDeleteProspects=False
مقادیر CHANGE_JOIN_PASSWORD و CHANGE_ADMIN_PASSWORD نمونه هستند و باید پیش از استفاده تغییر کنند.
| گزینه | کاربرد | نکته مهم |
|---|---|---|
| JoinPassword | رمز ورود بازیکنان | خالی بودن یعنی ورود بدون رمز |
| AdminPassword | رمز ورود ادمین | نباید خالی باشد |
| MaxPlayers | تعداد بازیکنان همزمان | محدوده رسمی ۱ تا ۸ |
| ResumeProspect | ادامه Prospect قبلی | به LastProspectName وابسته است |
| LoadProspect | بارگذاری یک Save مشخص | نام Prospect بدون پسوند JSON |
| CreateProspect | ساخت Prospect جدید | نیازمند پارامترهای صحیح |
| ShutdownIfEmptyFor | زمان توقف پس از خالی شدن سرور | بر حسب ثانیه |
نکته امنیتی: طبق مستندات RocketWerkz، اگر AdminPassword خالی باشد، استفاده از دستور AdminLogin بدون رمز میتواند دسترسی مدیریتی ایجاد کند. برای سرور عمومی یا خصوصی، رمز قوی و متفاوت از JoinPassword انتخاب کنید.
چرا SessionName نام سرور را تغییر نمیدهد؟
در مستندات رسمی ذکر شده است که گزینه SessionName برای تعیین نام در Server Browser در نظر گرفته شده، اما در وضعیت مستندشده اثر عملی ندارد. به جای آن از پارامتر Startup زیر استفاده کنید:
-SteamServerName="Iranica Icarus"
طبق مستندات، نام سرور حداکثر ۶۴ کاراکتر است.
تفاوت Session، Server Lobby و Prospect در Icarus
یکی از مهمترین علتهای سردرگمی هنگام راهاندازی Icarus Server، تفاوت میان سرور روشن و World فعال است.
Server Lobby چیست؟
Lobby محیط انتظار و مدیریت سرور است. ممکن است فرایند Dedicated Server بدون مشکل اجرا شود، پورتها باز باشند و بازیکنان بتوانند به آن متصل شوند، اما هیچ Prospect فعالی در حال اجرا نباشد.
در این حالت، ورود به Lobby به معنی خرابی سرور نیست. ادمین میتواند Prospect موجود را بارگذاری کند یا World جدید بسازد.
Prospect چیست؟
Prospect واحد اصلی فعالیت و ذخیره World در Icarus است. بسته به نوع بازی، میتواند یک مأموریت، Open World یا Outpost باشد.
برای نمونه، ممکن است سرور فایلهای ذخیرهشده زیر را داشته باشد:
FriendsOpenWorld.json
ForestMission.json
MainOutpost.json
این نامها فقط مثال هستند. نام واقعی را باید از فایلهای موجود روی سرور خودتان بردارید.
چرا بازیکن وارد Lobby میشود و نه World؟
اگر هیچ دستور Load، Resume یا Create هنگام Startup اجرا نشده باشد، سرور میتواند در حالت انتظار قرار بگیرد. در این وضعیت بازیکنان به Lobby متصل میشوند و از آنجا میتوانند با مجوز مناسب Prospect را اجرا کنند.
پس هنگام مواجهه با این مشکل، قبل از تغییر Firewall بررسی کنید آیا World واقعاً بارگذاری شده است یا خیر.
ساخت، بارگذاری و ادامه Prospect در Icarus Server
در مستندات رسمی سه عملیات اصلی برای مدیریت Prospect معرفی شده است: LoadProspect، ResumeProspect و CreateProspect.
۱. بارگذاری یک Prospect ذخیرهشده
اگر فایل FriendsOpenWorld.json وجود دارد، میتوانید نام آن را در ServerSettings.ini قرار دهید:
LoadProspect=FriendsOpenWorld
ResumeProspect=False
نام فایل را بدون پسوند .json وارد کنید.
همچنین میتوانید از پارامتر Startup استفاده کنید:
-LoadProspect=FriendsOpenWorld
۲. ادامه آخرین Prospect
برای Resume کردن آخرین Prospect:
ResumeProspect=True
LastProspectName=FriendsOpenWorld
اگر LastProspectName اشتباه باشد یا فایل مربوط به آن در مسیر Save وجود نداشته باشد، بارگذاری موفق نخواهد بود.
۳. ساخت Prospect جدید
برای ساخت Prospect، دستور CreateProspect به نوع Prospect، درجه سختی، وضعیت Hardcore و نام Save نیاز دارد.
نمونه رسمی ساخت یک Prospect آموزشی:
-CreateProspect="Tier1_Forest_Recon_0 3 false TestProspect01"
در این نمونه، مقدار ۳ نشاندهنده درجه سختی Hard و مقدار false نشاندهنده غیرفعال بودن Hardcore است.
نام داخلی Prospect باید معتبر باشد. برای بررسی نامها از صفحه Prospect Names در Wiki رسمی استفاده کنید.
رفع مشکل برگشتن Icarus Server به Lobby بعد از پنج دقیقه
یکی از مشکلات رایج این است که World با موفقیت اجرا میشود، اما پس از چند دقیقه بدون بازیکن به Lobby برمیگردد.
دو گزینه زیر این رفتار را کنترل میکنند:
ShutdownIfNotJoinedFor=300.000000
ShutdownIfEmptyFor=300.000000
ShutdownIfNotJoinedFor: مدت انتظار پس از شروع Prospect تا ورود اولین بازیکن را تعیین میکند.
ShutdownIfEmptyFor: مدت انتظار پس از خروج آخرین بازیکن را تعیین میکند.
در هر دو حالت، مقدار پیشفرض مستندشده ۳۰۰ ثانیه، معادل پنج دقیقه است.
چگونه توقف خودکار Prospect را غیرفعال کنیم؟
برای جلوگیری از بازگشت خودکار به Lobby در این دو حالت، از مقدار منفی استفاده کنید:
ShutdownIfNotJoinedFor=-1.000000
ShutdownIfEmptyFor=-1.000000
نکته مهم: مقدار صفر این قابلیت را غیرفعال نمیکند؛ طبق مستندات رسمی، صفر باعث میشود سرور در اولین فرصت به Lobby برگردد.
اگر میخواهید World فقط هنگام حضور بازیکنان فعال باشد، مقدار Timeout مثبت میتواند برای مدیریت منابع مناسبتر باشد. اما اگر به اجرای مداوم Prospect نیاز دارید، مقدار منفی انتخاب منطقیتری است.
پورتهای Icarus Dedicated Server و تنظیم Firewall
برای اینکه بازیکنان از اینترنت به سرور متصل شوند، باید پورتهای موردنیاز در Firewall و در صورت وجود NAT یا Router، در Port Forwarding نیز تنظیم شده باشند.
| پورت | پروتکل | کاربرد |
|---|---|---|
| 17777 | UDP | ارتباط اصلی بازی |
| 27015 | UDP | Steam Server Query و شناسایی سرور |
این مقادیر پیشفرض هستند و با پارامترهای زیر قابل تغییرند:
-PORT=17777
-QueryPort=27015
باز کردن پورتها در Windows Firewall
PowerShell را با دسترسی Administrator باز کنید و دستورات زیر را اجرا کنید:
New-NetFirewallRule -DisplayName "Icarus Game UDP" -Direction Inbound -Protocol UDP -LocalPort 17777 -Action Allow
New-NetFirewallRule -DisplayName "Icarus Query UDP" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow
اگر VPS دارای Firewall شبکه در پنل ارائهدهنده است، قوانین آن را هم بررسی کنید. باز بودن پورت در Windows Firewall لزوماً به معنی باز بودن مسیر در Firewall بیرونی نیست.
چگونه بررسی کنیم سرور روی پورتها گوش میدهد؟
در PowerShell دستور زیر را اجرا کنید:
Get-NetUDPEndpoint | Where-Object {
$_.LocalPort -in 17777,27015
}
این دستور وجود Endpoint محلی را بررسی میکند، اما اثبات نمیکند که بازیکنان از اینترنت میتوانند متصل شوند. برای تأیید نهایی باید از یک شبکه بیرونی اتصال واقعی را آزمایش کنید.
آموزش اتصال بازیکنان به Icarus Dedicated Server
طبق راهنمای رسمی RocketWerkz، مسیر معمول اتصال به این صورت است:
- بازی Icarus را اجرا کنید.
- شخصیت موردنظر را انتخاب کنید.
- در منوی HAB گزینه Join Session را بزنید.
- با گزینه تغییر نوع سرورها در قسمت بالای Server Browser، نمایش را روی Dedicated Servers قرار دهید.
- نام سرور را پیدا کنید و وارد شوید.
- در صورت فعال بودن JoinPassword، رمز ورود را وارد کنید.
اگر Prospect فعال باشد، بازیکن وارد جریان اتصال به World میشود. اگر سرور در Lobby باشد، بازیکن ابتدا به Server Lobby هدایت خواهد شد.
چرا سرور در Server Browser نمایش داده نمیشود؟
موارد زیر را به ترتیب بررسی کنید:
- آیا IcarusServer.exe واقعاً اجرا شده است؟
- آیا در Log خطای Startup وجود دارد؟
- آیا Query Port یعنی UDP 27015 باز است؟
- آیا Game Port یعنی UDP 17777 باز است؟
- آیا پورت انتخابی با سرور بازی دیگری تداخل دارد؟
- آیا Client و Dedicated Server از نسخههای سازگار استفاده میکنند؟
- آیا در بخش Dedicated Servers جستوجو میکنید؟
- آیا نام سرور با SteamServerName درست تنظیم شده است؟
اگر سرور در فهرست دیده میشود ولی اتصال برقرار نمیشود، احتمال مشکل در مسیر Game Port، Firewall، نسخه بازی یا وضعیت اجرای سرور بیشتر است.
دستورات مدیریتی و RCON در Icarus
Icarus امکان اجرای دستورات مدیریتی از طریق پنجره دستورات داخل بازی را فراهم میکند. طبق مستندات رسمی، دستورات RCON میتوانند با علامت / یا \ در Chat وارد شوند. در Lobby ممکن است نیازی به پیشوند / نباشد.
ورود ادمین
/AdminLogin YOUR_ADMIN_PASSWORD
رمز را با مقدار AdminPassword موجود در تنظیمات جایگزین کنید.
بارگذاری Prospect ذخیرهشده
/LoadProspect FriendsOpenWorld
ادامه آخرین Prospect
/ResumeProspect
برای مشاهده فهرست کامل دستورات و محدودیتهای آنها، مستندات Console RCON Commands را بررسی کنید.
محدود کردن دسترسی بازیکنان عادی
اگر نمیخواهید بازیکنان معمولی بتوانند Prospect جدید اجرا کنند یا Save موجود را حذف کنند، تنظیمات زیر را اعمال کنید:
AllowNonAdminsToLaunchProspects=False
AllowNonAdminsToDeleteProspects=False
این تنظیمات بهخصوص برای سرورهای عمومی اهمیت دارند.
فایلهای Save کجا هستند و چگونه World را منتقل کنیم؟
فایلهای Prospect در Dedicated Server معمولاً زیر پوشه Saved نگهداری میشوند:
Saved\PlayerData\DedicatedServer\Prospects\
اگر از مسیر پیشفرض استفاده میکنید، این پوشه زیر Saved مربوط به حساب کاربری اجراکننده سرور قرار دارد.
انتقال Save از بازی محلی به Dedicated Server
در نصب معمول Windows، Prospectهای محلی در مسیری شبیه نمونه زیر قرار دارند:
%LOCALAPPDATA%\Icarus\Saved\PlayerData\<SteamID>\Prospects\
برای انتقال ایمن:
- از World محلی و فایلهای مربوط به آن Backup بگیرید.
- Dedicated Server را متوقف کنید.
- فایل JSON مربوط به Prospect را پیدا کنید.
- فایل را به پوشه Prospects در Dedicated Server منتقل کنید.
- نام فایل را بدون پسوند در LoadProspect یا LastProspectName قرار دهید.
- سرور را اجرا کنید و وضعیت World را بررسی کنید.
- ساختمانها، پیشرفت و امکان ورود بازیکنان را آزمایش کنید.
اگر World محلی دارای دادههای مرتبط دیگری است، قبل از Migration، راهنمای رسمی انتقال را مطالعه کنید و از تمام پوشه PlayerData مربوط به آن نسخه پشتیبان داشته باشید.
راهنمای رسمی انتقال Prospect از بازی محلی به سرور
Backup گرفتن از Save سرور
برای یک Backup قابل اتکا، فقط یک فایل JSON را ذخیره نکنید. بهتر است پوشه Saved شامل Prospectها، Config و سایر دادههای مرتبط را نیز نگهداری کنید.
ابتدا سرور را متوقف کنید. سپس در PowerShell، پس از اصلاح مسیرهای نمونه، دستور زیر را اجرا کنید:
$SavedPath = "$env:LOCALAPPDATA\Icarus\Saved"
$BackupDir = "D:\IcarusBackups"
New-Item -ItemType Directory -Force -Path $BackupDir | Out-Null
$Stamp = Get-Date -Format "yyyyMMdd-HHmmss"
Compress-Archive -Path $SavedPath -DestinationPath "$BackupDir\Icarus-$Stamp.zip"
این دستور باید تحت همان حساب کاربری اجرا شود که Saved Directory سرور به آن تعلق دارد. اگر از -UserDir استفاده میکنید، مقدار SavedPath را متناسب با مسیر واقعی تغییر دهید.
بهتر است نسخهای از Backup خارج از سرور اصلی نیز نگهداری شود تا در صورت خرابی دیسک یا حذف ماشین مجازی، اطلاعات از دست نرود.
بهروزرسانی Icarus Dedicated Server بدون از دست رفتن Save
آپدیت سرور برای حفظ سازگاری با نسخه بازی بازیکنان اهمیت دارد. اما اجرای Update بدون Backup، بهخصوص روی Worldهای قدیمی، ریسک غیرضروری ایجاد میکند.
روش استاندارد Update
- به بازیکنان اطلاع دهید که سرور موقتاً متوقف میشود.
- اجازه دهید ذخیره World کامل شود و سرور را صحیح متوقف کنید.
- از پوشه Saved و فایلهای تنظیمات Backup بگیرید.
- SteamCMD را اجرا کنید.
- نسخه جدید را دریافت کنید.
- سرور را راهاندازی کنید و Logها را بررسی کنید.
- با یک Client بهروز وارد سرور شوید و Prospect را آزمایش کنید.
دستور Update:
C:\SteamCMD\steamcmd.exe +force_install_dir C:\IcarusServer +login anonymous +app_update 2089300 validate +quit
اگر سرور روی Branch خاصی نصب شده است، قبل از Update بررسی کنید که Client بازیکنان نیز با همان Branch سازگار باشد.
چرا بعد از Update بازیکنان نمیتوانند وصل شوند؟
در چنین شرایطی ابتدا نسخه Client و Server را مقایسه کنید. سپس بررسی کنید آیا Startup Script، مسیر ذخیرهسازی، تنظیمات Firewall یا فایلهای اصلی سرور تغییر کردهاند.
اگر مشکل فقط برای یک Prospect اتفاق میافتد، بدون ویرایش مستقیم فایل JSON، ابتدا از آن Backup بگیرید و Logهای بارگذاری همان Prospect را بررسی کنید.
بررسی Logهای Icarus Server
برای عیبیابی دقیق، سرور را با پارامتر -Log اجرا کنید. در صورت نیاز میتوانید محل ثبت Log را نیز مشخص کنید.
برای تعیین نام Log در مسیر نسبی:
-LOG=IcarusServer.log
برای تعیین مسیر کامل:
-ABSLOG=C:\IcarusLogs\Server.log
در استفاده از مسیر مطلق، مطمئن شوید حساب کاربری اجراکننده سرور مجوز نوشتن در پوشه موردنظر را دارد.
هنگام بررسی Logها، به پیامهای مربوط به بارگذاری Prospect، خطاهای Save، Port Binding، ارتباط Steam و Crash توجه کنید. بهتر است Log را از زمان Startup تا لحظه تلاش ناموفق بازیکن برای اتصال بررسی کنید.
عیبیابی Icarus Dedicated Server؛ از کجا شروع کنیم؟
به جای تغییر همزمان چندین تنظیم، ابتدا مشخص کنید مشکل دقیقاً در کدام مرحله رخ میدهد.
| نشانه | علت احتمالی | اولین اقدام |
|---|---|---|
| سرور در فهرست نیست | Query Port یا Startup | بررسی UDP 27015 و Log |
| سرور دیده میشود ولی Join نمیشود | Game Port، Firewall یا نسخه | بررسی UDP 17777 و Build |
| بازیکن وارد Lobby میشود | Prospect فعال نیست | Load یا Resume کردن Prospect |
| World پس از پنج دقیقه متوقف میشود | Timeout پیشفرض | بررسی ShutdownIfEmptyFor |
| Save قبلی بارگذاری نمیشود | نام یا مسیر اشتباه | بررسی LastProspectName و فایل JSON |
| مشکل بعد از Update ایجاد شده | اختلاف نسخه یا تغییر تنظیمات | بررسی Build و Log |
| فقط یک World مشکل دارد | احتمال مشکل در دادههای Save | Backup و بررسی خطای Load |
مرحله اول: وضعیت فرایند سرور را بررسی کنید
در Task Manager مطمئن شوید IcarusServer.exe اجرا شده است. سپس پنجره Log را بررسی کنید. اگر فرایند بلافاصله بسته میشود، ابتدا خطای Startup را پیدا کنید.
مرحله دوم: مسیر فایل تنظیمات را بررسی کنید
اگر تغییرات ServerSettings.ini اعمال نمیشوند، ممکن است فایل اشتباهی را ویرایش کرده باشید. حساب کاربری اجراکننده سرور و پارامتر UserDir را بررسی کنید.
مرحله سوم: یک تست Lobby انجام دهید
اگر سرور در Lobby قابل مشاهده و اتصال است، بخشی از ارتباط شبکه درست کار میکند. حالا یک Prospect معتبر را Load کنید و ببینید مشکل فقط هنگام ورود به World رخ میدهد یا خیر.
مرحله چهارم: پورتها را از شبکه بیرونی آزمایش کنید
بررسی محلی Endpoint کافی نیست. از یک اینترنت دیگر، با Client بازی، اتصال واقعی را آزمایش کنید. همچنین Firewall شبکه VPS یا Port Forwarding روتر را بررسی کنید.
مرحله پنجم: نسخه Client و Server را هماهنگ کنید
اگر چند بازیکن پس از آپدیت بازی نمیتوانند وارد شوند، ابتدا مطمئن شوید Dedicated Server نیز بهروزرسانی شده است. استفاده از Branchهای متفاوت میتواند مشکل سازگاری ایجاد کند.
مرحله ششم: Save را آخرین گزینه برای دستکاری قرار دهید
اگر سرور بدون Prospect مشکل ندارد ولی با یک World مشخص خطا میدهد، از فایلهای آن Backup بگیرید. سپس Log بارگذاری و مسیر فایل را بررسی کنید. تغییر دستی محتوای JSON بدون شناخت ساختار آن میتواند وضعیت را بدتر کند.
اشتباههای رایج در مدیریت Icarus Server
- تصور اینکه آنلاین بودن سرور یعنی World نیز فعال است.
- ویرایش ServerSettings.ini مربوط به حساب کاربری اشتباه.
- استفاده از SessionName به جای SteamServerName.
- خالی گذاشتن AdminPassword.
- باز نکردن Query Port در Firewall.
- استفاده از صفر برای غیرفعال کردن Timeout.
- وارد کردن نام Prospect همراه با پسوند JSON.
- استفاده همزمان از تنظیمات متناقض Load و Resume.
- ویرایش فایل Save هنگام اجرای سرور.
- آپدیت بدون تهیه Backup.
- بررسی نکردن نسخه Client پس از آپدیت.
سؤالات متداول درباره Icarus Dedicated Server
آیا برای ساخت Icarus Dedicated Server باید بازی را جداگانه خریداری کنیم؟
طبق راهنمای رسمی RocketWerkz، ابزار Dedicated Server از طریق SteamCMD و ورود Anonymous قابل نصب است و برای دریافت فایلهای سرور به لایسنس جداگانه بازی نیاز ندارد.
App ID سرور Icarus چیست؟
شناسه رسمی Dedicated Server برابر 2089300 است.
حداکثر چند بازیکن میتوانند به سرور Icarus وصل شوند؟
در مستندات رسمی ServerSettings.ini، محدوده MaxPlayers بین ۱ تا ۸ تعریف شده است.
چرا Icarus Server آنلاین است ولی World اجرا نمیشود؟
احتمالاً سرور در Lobby قرار دارد و هیچ Prospect فعالی بارگذاری نشده است. تنظیمات LoadProspect و ResumeProspect را بررسی کنید.
چرا World بعد از پنج دقیقه به Lobby برمیگردد؟
مقادیر پیشفرض ShutdownIfNotJoinedFor و ShutdownIfEmptyFor برابر ۳۰۰ ثانیه هستند. برای غیرفعال کردن این Timeoutها از مقدار منفی استفاده کنید.
پورتهای پیشفرض Icarus Server چیست؟
UDP 17777 برای ارتباط بازی و UDP 27015 برای Steam Server Query استفاده میشوند.
چرا تغییر SessionName روی نام سرور تأثیر ندارد؟
در مستندات رسمی، استفاده از پارامتر SteamServerName برای تعیین نام قابل نمایش سرور توصیه شده است.
آیا میتوان Save محلی را به Dedicated Server منتقل کرد؟
بله. با تهیه Backup و انتقال صحیح فایل Prospect به پوشه DedicatedServer\Prospects میتوان World ذخیرهشده را روی سرور بارگذاری کرد.
آیا با Update کردن سرور Save پاک میشود؟
آپدیت استاندارد فایلهای نصب لزوماً به معنی حذف Save نیست، اما قبل از هر Update باید از پوشه Saved و تنظیمات نسخه پشتیبان تهیه کنید.
آیا میتوان Icarus Server را روی VPS اجرا کرد؟
بله. انتخاب سیستمعامل و روش اجرا باید با ابزار سرور و محیط مورد پشتیبانی آن سازگار باشد. برای اجرای مستقیم طبق این آموزش، Windows Server انتخاب سادهتری است.
جمعبندی
برای ساخت Icarus Dedicated Server ابتدا فایلهای رسمی را با SteamCMD و App ID شماره 2089300 دریافت کنید. سپس ServerSettings.ini را تنظیم کنید، رمز ادمین قرار دهید و پورتهای UDP 17777 و 27015 را در Firewall باز کنید.
مهمترین نکته این است که Server Lobby با Active Prospect تفاوت دارد. اگر بازیکنان به سرور متصل میشوند اما وارد World نمیشوند، قبل از تغییر تنظیمات شبکه، وضعیت LoadProspect و ResumeProspect را بررسی کنید.
برای جلوگیری از توقف ناخواسته World، Timeoutها را متناسب با نیاز خود تنظیم کنید. همچنین قبل از هر Update یا انتقال Save، از دادهها Backup بگیرید و پس از تغییرات، اتصال واقعی بازیکنان را آزمایش کنید.
منابع و مستندات معتبر
اطلاعات فنی این مقاله با استفاده از مستندات رسمی RocketWerkz و راهنمای SteamCMD تهیه شده است. برای بررسی تنظیمات و تغییرات احتمالی، منابع زیر را مطالعه کنید.
۱. RocketWerkz — Icarus Dedicated Server
مخزن رسمی ابزار Dedicated Server بازی Icarus و نقطه شروع دسترسی به Wiki سازنده.
۲. Server Setup
راهنمای رسمی نصب سرور، دریافت فایلها با SteamCMD، پورتهای پیشفرض و اجرای اولیه.
۳. Server Config & Launch Parameters
مرجع تنظیمات ServerSettings.ini، مدیریت Session و Prospect، Timeoutها، دستورات Startup و پارامترهای شبکه.
۴. Connecting to Servers
راهنمای رسمی اتصال بازیکنان، استفاده از Dedicated Server Browser و ورود به Lobby.
۵. Migrating Prospect from Local Icarus
راهنمای انتقال World و Prospect ذخیرهشده از بازی محلی به Dedicated Server.
۶. Valve Developer Community — SteamCMD
مستندات نصب و استفاده از SteamCMD برای دریافت و بهروزرسانی فایلهای سرور.






دیدگاهها (۰)