ساخت سرور Vintage Story؛ آموزش نصب Mods، تنظیم Whitelist و بکاپ World
Vintage Story Server یک سرور اختصاصی برای بازی Vintage Story است که به شما اجازه میدهد دنیای بقا، اکتشاف و ساختوساز خود را بهصورت آنلاین و چندنفره اجرا کنید. در این بازی، بازیکنان میتوانند منابع استخراج کنند، ابزار بسازند، کشاورزی کنند و در دنیایی با آبوهوا، فصلها و سیستمهای پیچیده بقا زندگی کنند.
برای ساخت سرور Vintage Story نیازی به اجرای نسخه گرافیکی بازی روی سرور نیست. میتوانید فایلهای Dedicated Server را روی یک سرور مجازی لینوکس نصب کنید و از طریق تنظیمات JSON، دستورات مدیریتی و Modهای دلخواه، محیط بازی را کنترل کنید.
با این حال، سه موضوع در مدیریت این بازی اهمیت ویژهای دارند: سازگاری Modها با نسخه بازی، تنظیم Whitelist برای ورود بازیکنان و تهیه Backup مطمئن از World. اشتباه در هرکدام از این بخشها ممکن است باعث خطای اتصال، اجرا نشدن سرور یا آسیب به اطلاعات ذخیرهشده شود.
در این آموزش، نصب Vintage Story Dedicated Server روی Ubuntu، ساخت سرویس systemd، تنظیم serverconfig.json، مدیریت Modها، اضافه کردن بازیکنان به Whitelist، تنظیم پورت 42420، انتقال Save، بکاپگیری و آپدیت ایمن سرور را مرحلهبهمرحله بررسی میکنیم.
Vintage Story Dedicated Server چیست و چه کاربردی دارد؟
Vintage Story یک بازی Survival و Sandbox است که روی بقا، طبیعت، ساخت ابزار، صنایع دستی و پیشرفت تدریجی بازیکن تمرکز دارد. برخلاف یک بازی چندنفره که World تنها با حضور میزبان فعال است، Dedicated Server بهصورت مستقل روی یک سیستم اجرا میشود.
با راهاندازی سرور اختصاصی میتوانید:
- یک World دائمی برای دوستان یا جامعه بازیکنان ایجاد کنید.
- تعداد بازیکنان و دسترسی آنها را مدیریت کنید.
- سرور را عمومی یا خصوصی نگه دارید.
- با Whitelist فقط به کاربران مجاز اجازه ورود بدهید.
- Modهای جدید برای Gameplay، موجودات، ابزارها و ساختوساز نصب کنید.
- قوانین World و تنظیمات بقا را تغییر دهید.
- از اطلاعات بازی نسخه پشتیبان تهیه کنید.
- سرور را بدون نیاز به باز بودن بازی روی کامپیوتر شخصی اجرا کنید.
Vintage Story دارای بسته اختصاصی سرور برای Linux است و میتوان آن را بدون نصب محیط گرافیکی روی Ubuntu یا Debian اجرا کرد.
منابع سختافزاری موردنیاز Vintage Story Server
میزان منابع لازم به تعداد بازیکنان، اندازه World، فاصله دید، تعداد Chunkهای فعال و Modهای نصبشده بستگی دارد.
برای مثال، زمانی که چند بازیکن همزمان در مناطق ناشناخته حرکت میکنند، سرور باید Chunkهای جدید تولید کند. این عملیات ممکن است فشار بیشتری به CPU و دیسک وارد کند.
جدول منابع پیشنهادی
| نوع سرور | RAM پیشنهادی | CPU پیشنهادی | کاربرد |
|---|---|---|---|
| آزمایشی | ۴ گیگابایت | ۲ vCPU | نصب و تست با تعداد محدود بازیکن |
| خصوصی کوچک | ۶ تا ۸ گیگابایت | ۲ تا ۴ vCPU | بازی چندنفره با Modهای سبک |
| سرور فعال | ۱۲ تا ۱۶ گیگابایت | ۴ تا ۶ vCPU سریع | بازیکنان بیشتر و Modهای متنوع |
| سرور عمومی سنگین | ۲۴ تا ۳۲ گیگابایت یا بیشتر | ۶ تا ۸ vCPU یا بیشتر | World بزرگ و فعالیت همزمان گسترده |
این مقادیر پیشنهاد اولیه برای ظرفیتسنجی هستند، نه حداقل رسمی تضمینشده. برای انتخاب نهایی باید مصرف واقعی سرور را هنگام تولید Chunk، فعالیت بازیکنان و اجرای Modها اندازهگیری کنید.
چرا SSD یا NVMe پیشنهاد میشود؟
Vintage Story اطلاعات World را در فایلهای ذخیرهسازی نگهداری میکند. تولید مناطق جدید، ذخیره تغییرات و تهیه Backup میتوانند عملیات خواندن و نوشتن زیادی ایجاد کنند.
استفاده از SSD یا NVMe میتواند زمان انتظار مربوط به دیسک را کاهش دهد. همچنین بهتر است فضای کافی برای چند نسخه Backup و رشد تدریجی World در نظر بگیرید.
چه سیستمعاملی مناسب است؟
برای این آموزش از Ubuntu Server استفاده میکنیم. نصب روی Debian نیز با تغییرات جزئی امکانپذیر است.
پیش از نصب، معماری پردازنده را بررسی کنید:
uname -m
اگر خروجی x86_64 است، باید بسته Linux x64 بازی را دریافت کنید. برای ARM64 از راهنمای مخصوص همان معماری استفاده کنید؛ زیرا پشتیبانی و سازگاری بعضی Modهای کدنویسیشده ممکن است متفاوت باشد.
پیشنیاز مهم: نسخه .NET
Vintage Story از .NET استفاده میکند؛ اما نسخه Runtime موردنیاز در طول توسعه بازی تغییر کرده است.
برای نمونه، مستندات قدیمی نسخه 1.20 به .NET 7 اشاره میکنند، در حالی که مستندات توسعه نسخه 1.22 مهاجرت پروژه به .NET 10 را توضیح میدهند.
بنابراین نسخه .NET را بر اساس بسته سروری که واقعاً دانلود میکنید انتخاب کنید و از نصب کورکورانه نسخههای قدیمی خودداری کنید.
برای مشاهده Runtimeهای نصبشده:
dotnet --list-runtimes
اگر دستور پیدا نشد یا Runtime لازم موجود نبود، نسخه مناسب را از وبسایت رسمی Microsoft .NET نصب کنید. بعضی بستههای اجرایی نیز ممکن است وابستگیهای موردنیاز را همراه خود داشته باشند؛ بنابراین خروجی اجرای فایل سرور را هم بررسی کنید.
آموزش نصب Vintage Story Dedicated Server روی Ubuntu
در این روش، فایلهای برنامه و اطلاعات World را در دو مسیر جداگانه نگهداری میکنیم:
- مسیر برنامه: /opt/vintagestory/server
- مسیر اطلاعات: /var/lib/vintagestory
این جداسازی هنگام آپدیت اهمیت زیادی دارد؛ زیرا میتوانید فایلهای برنامه را جایگزین کنید، بدون اینکه پوشه Save و Modها را حذف کنید.
مرحله اول: نصب ابزارهای اولیه
از طریق SSH به Ubuntu متصل شوید و دستورات زیر را اجرا کنید:
sudo apt update
sudo apt install -y wget curl tar ca-certificates jq
مرحله دوم: ساخت کاربر مخصوص بازی
بهتر است سرور بازی را با کاربر root اجرا نکنید. یک حساب سیستمی مستقل بسازید:
sudo useradd --system --user-group --home-dir /var/lib/vintagestory --shell /usr/sbin/nologin vintagestory
sudo mkdir -p /opt/vintagestory/server
sudo mkdir -p /var/lib/vintagestory
sudo chown -R vintagestory:vintagestory /opt/vintagestory /var/lib/vintagestory
اگر کاربر vintagestory از قبل وجود دارد، دستور ساخت کاربر را دوباره اجرا نکنید.
مرحله سوم: دریافت فایل رسمی Dedicated Server
به صفحه دانلود رسمی Vintage Story بروید و در بخش فایلهای دیگر، بسته Linux Server با پسوند tar.gz را انتخاب کنید.
نام بسته معمولاً ساختاری شبیه نمونه زیر دارد:
vs_server_linux-x64_VERSION.tar.gz
بهجای VERSION باید شماره نسخه واقعی بسته قرار بگیرد.
لینک دانلود نسخه انتخابی را کپی کنید و از الگوی زیر استفاده کنید:
cd /tmp
wget -O vintagestory-server.tar.gz "PASTE_OFFICIAL_DOWNLOAD_URL_HERE"
عبارت PASTE_OFFICIAL_DOWNLOAD_URL_HERE باید با لینک واقعی دانلود جایگزین شود. از استفاده از لینکهای نسخه قدیمی صرفاً به دلیل وجود آنها در آموزشهای اینترنتی خودداری کنید.
مرحله چهارم: استخراج فایلها
فایل دانلودشده را بررسی و استخراج کنید:
tar -tzf /tmp/vintagestory-server.tar.gz | head
sudo tar -xzf /tmp/vintagestory-server.tar.gz -C /opt/vintagestory/server
sudo chown -R vintagestory:vintagestory /opt/vintagestory/server
قبل از استخراج، مطمئن شوید فایل از منبع رسمی دریافت شده است. در نصب اولیه، پوشه مقصد باید خالی باشد.
مرحله پنجم: بررسی فایل اجرایی
وارد پوشه نصب شوید:
cd /opt/vintagestory/server
ls -lah
بسته به نسخه، فایل VintagestoryServer یا VintagestoryServer.dll را مشاهده خواهید کرد.
برای اجرای مبتنی بر .NET، دستور اصلی به شکل زیر است:
dotnet VintagestoryServer.dll --dataPath /var/lib/vintagestory
این دستور را باید با دسترسی کاربر مخصوص بازی اجرا کنید، نه root. در مرحله بعد آن را داخل سرویس systemd قرار میدهیم.
اجرای دائمی Vintage Story Server با systemd
اگر سرور را فقط در یک نشست SSH اجرا کنید، ممکن است پس از قطع نشست، فرایند نیز متوقف شود. استفاده از systemd امکان راهاندازی خودکار هنگام روشن شدن سرور و مدیریت وضعیت سرویس را فراهم میکند.
ساخت سرویس
فایل زیر را ایجاد کنید:
sudo nano /etc/systemd/system/vintagestory.service
محتوای زیر را وارد کنید:
[Unit]
Description=Vintage Story Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=vintagestory
Group=vintagestory
WorkingDirectory=/opt/vintagestory/server
ExecStart=/usr/bin/dotnet /opt/vintagestory/server/VintagestoryServer.dll --dataPath /var/lib/vintagestory
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
این سرویس برای بستهای نوشته شده که VintagestoryServer.dll را با dotnet اجرا میکند. اگر بسته شما فقط فایل اجرایی مستقل دارد، ExecStart را با مسیر همان فایل هماهنگ کنید.
همچنین اگر dotnet در مسیر متفاوتی نصب شده، مسیر آن را با دستور command -v dotnet بررسی کنید.
فعالسازی سرویس
sudo systemctl daemon-reload
sudo systemctl enable --now vintagestory
بررسی وضعیت
sudo systemctl status vintagestory --no-pager
برای مشاهده Log زنده:
sudo journalctl -u vintagestory -f
اگر سرویس خطای Runtime یا فایل گمشده نمایش داد، قبل از هر تغییر دیگر، مسیر اجرایی و نسخه .NET را بررسی کنید.
نکته: در این روش، systemd برای راهاندازی و نظارت استفاده میشود. برای اجرای تعاملی دستورات مدیریتی میتوانید از کنسول تعاملی بازی یا روش رسمی server.sh استفاده کنید. سرویس ساده systemd بهتنهایی یک رابط ارسال فرمان به Console فراهم نمیکند.
تنظیم فایل serverconfig.json در Vintage Story
فایل serverconfig.json تنظیمات اصلی سرور را نگهداری میکند. این فایل معمولاً پس از اولین اجرای موفق سرور در مسیر DataPath ساخته میشود.
در ساختار آموزشی ما، مسیر آن عبارت است از:
/var/lib/vintagestory/serverconfig.json
قبل از ویرایش تنظیمات
ابتدا سرور را متوقف کنید:
sudo systemctl stop vintagestory
از فایل تنظیمات یک کپی تهیه کنید:
sudo cp /var/lib/vintagestory/serverconfig.json /var/lib/vintagestory/serverconfig.json.bak
تنظیمات اصلی
نمونه زیر بخشی از کلیدهای رایج را نمایش میدهد. این قطعه را جایگزین کل فایل نکنید؛ بلکه مقادیر موجود در فایل تولیدشده توسط نسخه خودتان را ویرایش کنید.
{
"ServerName": "Iranica Vintage Story",
"ServerDescription": "Iranica Survival World",
"Port": 42420,
"MaxClients": 16,
"AdvertiseServer": false,
"Upnp": false,
"WhitelistMode": "default",
"PassTimeWhenEmpty": false
}
این نمونه یک JSON مستقل معتبر است، اما فایل واقعی serverconfig.json کلیدهای بسیار بیشتری دارد که باید حفظ شوند.
| گزینه | کاربرد |
|---|---|
| ServerName | نام سرور |
| ServerDescription | توضیحات سرور |
| Port | پورت ارتباط بازیکنان |
| MaxClients | حداکثر بازیکنان همزمان |
| AdvertiseServer | نمایش در فهرست عمومی |
| WhitelistMode | محدود کردن ورود کاربران |
| PassTimeWhenEmpty | عبور زمان بازی در نبود بازیکنان |
| ModPaths | مسیر جستوجوی Modها |
| SaveFileLocation | مسیر فایل World |
اعتبارسنجی فایل JSON
پس از ویرایش، ساختار JSON را بررسی کنید:
jq empty /var/lib/vintagestory/serverconfig.json
اگر دستور بدون خطا تمام شود، فایل از نظر نحوی JSON معتبر است. این بررسی تضمین نمیکند تمام کلیدها و مقادیر با نسخه بازی سازگار باشند.
پس از بررسی، سرور را دوباره اجرا کنید:
sudo systemctl start vintagestory
آموزش فعالسازی Whitelist در Vintage Story Server
Whitelist فهرستی از بازیکنان مجاز است. وقتی این قابلیت فعال باشد، تنها حسابهایی که در فهرست مجاز قرار گرفتهاند میتوانند وارد سرور شوند.
از نسخه 1.20 به بعد، در Dedicated Serverهای Vintage Story حالت پیشفرض Whitelist فعال است. این موضوع برای امنیت سرور خصوصی مفید است، اما ممکن است باعث شود مدیر سرور تصور کند مشکل اتصال یا Firewall وجود دارد.
اضافه کردن بازیکن به Whitelist
در کنسول مدیریتی سرور، دستور زیر را اجرا کنید:
/player PlayerName whitelist on
عبارت PlayerName را با نام دقیق حساب Vintage Story بازیکن جایگزین کنید.
برای مثال:
/player Amir whitelist on
برای اضافه کردن یک بازیکن نیازی به Restart سرور نیست.
حذف دسترسی Whitelist
برای غیرفعال کردن مجوز ورود بازیکن:
/player Amir whitelist off
بررسی وضعیت Whitelist بازیکن
/player Amir whitelist
تغییر حالت کلی Whitelist
برای فعال کردن اجباری Whitelist:
/serverconfig WhitelistMode on
برای بازگرداندن رفتار پیشفرض:
/serverconfig WhitelistMode default
برای غیرفعال کردن محدودیت Whitelist:
/serverconfig WhitelistMode off
هشدار امنیتی: برای سرور خصوصی بهتر است Whitelist فعال بماند. غیرفعال کردن آن میتواند امکان تلاش برای ورود کاربران ناشناس را افزایش دهد.
چرا ویرایش دستی فایل Whitelist پیشنهاد نمیشود؟
طبق راهنمای بازی، مدیریت Whitelist با دستورات داخلی سادهتر و مطمئنتر از دستکاری مستقیم دادههای کاربران است.
بهتر است بهجای ساخت فایل Whitelist فرضی یا ویرایش دادههای ذخیرهشده، از دستور رسمی /player استفاده کنید.
دستورات ادمین Vintage Story Server
بعد از ساخت سرور، باید برای حساب خود دسترسی مدیریت تعریف کنید.
دادن دسترسی ادمین
در کنسول سرور:
/op Amir
نام Amir صرفاً نمونه است.
در روش راهاندازی با server.sh رسمی، میتوانید فرمان را از طریق ابزار مدیریت آن ارسال کنید؛ اما در روش systemd ساده این مقاله، باید از کنسول تعاملی یا روش مدیریتی سازگار استفاده شود.
دستورات کاربردی
| دستور | کاربرد |
|---|---|
/list clients |
نمایش بازیکنان متصل |
/stats |
مشاهده آمار عملکرد سرور |
/autosavenow |
ذخیره فوری World |
/genbackup |
ساخت Backup از World فعال |
/serverconfig maxclients 16 |
تعیین ظرفیت بازیکنان |
/serverconfig advertise 0 |
عدم نمایش در فهرست عمومی |
/stop |
توقف صحیح سرور |
این دستورات را در کنسول مدیریتی بازی وارد کنید، نه مستقیماً در Bash لینوکس.
آموزش نصب Mods روی Vintage Story Server
یکی از قابلیتهای مهم Vintage Story پشتیبانی از Modها است. Mod میتواند آیتمها، بلوکها، موجودات، سیستمهای ساختوساز یا قوانین Gameplay را تغییر دهد.
برای دریافت Modها از Vintage Story Mod DB استفاده کنید.
انواع Modها
| نوع Mod | محل اجرا | نکته |
|---|---|---|
| Server-side | سرور | منطق سمت سرور را تغییر میدهد |
| Client-side | کلاینت بازیکن | برای رابط کاربری یا قابلیتهای محلی استفاده میشود |
| Universal | سرور و کلاینت | ممکن است هر دو سمت به فایل Mod نیاز داشته باشند |
از نسخههای جدید بازی، بسیاری از Modهای Server-side و Universal هنگام اتصال بازیکن از طریق سیستم خودکار مدیریت Mod دریافت میشوند. این قابلیت برای تمام Modهای Client-side تضمین نشده است.
مرحله اول: ساخت پوشه Mods
در ساختار نصب ما:
sudo mkdir -p /var/lib/vintagestory/Mods
sudo chown -R vintagestory:vintagestory /var/lib/vintagestory/Mods
مرحله دوم: تنظیم ModPaths
سرور را متوقف کنید و فایل serverconfig.json را باز کنید.
کلید ModPaths را پیدا کنید و مسیر پوشه Mods را به آن اضافه کنید:
"ModPaths": [
"Mods",
"/var/lib/vintagestory/Mods"
]
این قطعه باید در ساختار اصلی JSON قرار بگیرد و کاماهای قبل و بعد آن مطابق فایل واقعی تنظیم شوند.
نکته مهم: مسیر اولیه Mods را حذف نکنید؛ زیرا ممکن است برای بارگذاری فایلهای پایه بازی موردنیاز باشد.
مرحله سوم: دانلود Mod سازگار
وارد صفحه Mod موردنظر شوید و موارد زیر را بررسی کنید:
- نسخه Vintage Story پشتیبانیشده.
- نوع Mod: Server-side، Client-side یا Universal.
- وابستگی به Modهای دیگر.
- نسخه پایدار و تاریخ آخرین آپدیت.
- توضیحات سازنده درباره نصب و حذف.
فایل ZIP مربوط به Mod را دریافت کنید.
مرحله چهارم: انتقال فایل ZIP
فایل ZIP را در پوشه Mods قرار دهید:
/var/lib/vintagestory/Mods/
در حالت معمول نیازی به استخراج ZIP نیست، مگر اینکه سازنده Mod دستور دیگری ارائه کرده باشد.
بعد از انتقال، مالکیت فایلها را اصلاح کنید:
sudo chown -R vintagestory:vintagestory /var/lib/vintagestory/Mods
مرحله پنجم: اجرای مجدد و بررسی Log
sudo systemctl restart vintagestory
sudo journalctl -u vintagestory -n 100 --no-pager
در Log به دنبال پیامهای مربوط به بارگذاری Modها، Dependency و Exception بگردید.
نصب Mod با دستور moddb
Vintage Story ابزار مدیریتی /moddb را نیز ارائه میدهد.
برای مشاهده Modهای نصبشده:
/moddb list
برای جستوجو:
/moddb search example
برای نصب، از Mod ID واقعی و نسخه بازی سازگار استفاده کنید:
/moddb install MOD_ID GAME_VERSION
عبارتهای MOD_ID و GAME_VERSION جایگزین مقادیر واقعی هستند.
دستورات /moddb باید در کنسول مدیریتی بازی اجرا شوند. پس از نصب یا حذف Mod، مطابق نیاز آن Mod سرور را Restart کنید.
رفع مشکل ناسازگاری Mods در Vintage Story
بسیاری از مشکلات سرورهای Modded به ناسازگاری نسخه Mod با بازی یا وابستگیهای ناقص مربوط میشوند.
۱. نسخه بازی را بررسی کنید
برای مثال، Mod ساختهشده برای نسخه 1.20 لزوماً با نسخه 1.22 سازگار نیست.
حتی اگر فایل Mod بدون خطا بارگذاری شود، ممکن است بعضی قابلیتهای آن هنگام ورود بازیکن یا بارگذاری World دچار مشکل شوند.
۲. وابستگیها را نصب کنید
بعضی Modها برای اجرا به Library یا Mod دیگری نیاز دارند.
اگر Log پیام Missing Dependency نمایش داد، صفحه رسمی Mod را بررسی و وابستگی موردنیاز را نصب کنید.
۳. چند Mod را همزمان آپدیت نکنید
بهتر است ابتدا Backup بگیرید و Modها را بهصورت مرحلهای آپدیت کنید.
اگر پس از آپدیت مشکل ایجاد شد، با این روش راحتتر میتوانید Mod مسئول را شناسایی کنید.
۴. Modهای مربوط به World Generation را با احتیاط تغییر دهید
بعضی Modها بلوکها، آیتمها، موجودات یا قوانین تولید World را تغییر میدهند.
حذف چنین Modهایی از یک World فعال ممکن است باعث ایجاد آیتمهای ناشناخته، از بین رفتن محتوای سفارشی یا ناسازگاری دادهها شود.
قبل از حذف، توضیحات سازنده را مطالعه کنید و Backup قابل بازیابی داشته باشید.
۵. مشکل دانلود Mod سمت بازیکن
در اتصال به سرور Modded، بازی میتواند Modهای پشتیبانیشده را برای Client دریافت کند.
اگر Client همچنان نسخه قدیمی یک Mod را نگه داشته، ممکن است لازم باشد پوشه مربوط به Modهای همان سرور در ModsByServer پاکسازی شود تا فایلها دوباره دریافت شوند.
این کار باید روی Client و با اطمینان از انتخاب پوشه درست انجام شود؛ نه با حذف پوشه Mods اصلی سرور.
پورت Vintage Story Server و تنظیم Firewall
پورت پیشفرض Vintage Story برابر 42420 است.
برای اجرای سرور عمومی، باید دسترسی شبکه به این پورت فراهم باشد.
باز کردن پورت در UFW
در Ubuntu:
sudo ufw allow 42420/tcp
sudo ufw allow 42420/udp
قبل از فعال کردن UFW روی VPS، مطمئن شوید دسترسی SSH شما مجاز است. برای مثال، اگر SSH روی پورت 22 اجرا میشود، Rule آن باید از قبل وجود داشته باشد.
این دستورات Ruleهای پورت بازی را اضافه میکنند و بهتنهایی UFW را فعال نمیکنند.
بررسی وضعیت Firewall
sudo ufw status numbered
بررسی Listen بودن پورت
sudo ss -lntup | grep 42420
اگر خروجی مناسب نمایش داده نشد، ابتدا وضعیت سرویس و مقدار Port در serverconfig.json را بررسی کنید.
وجود پورت در خروجی ss به معنی دسترسی قطعی از اینترنت نیست؛ Firewall ارائهدهنده VPS یا تنظیمات شبکه نیز ممکن است ارتباط را محدود کنند.
اتصال بازیکنان
بازیکنان میتوانند از بخش Multiplayer بازی، آدرس IP یا دامنه سرور را همراه با پورت وارد کنند.
نمونه آدرس:
YOUR_SERVER_IP:42420
YOUR_SERVER_IP باید با IP عمومی واقعی سرور جایگزین شود.
World و فایل Save در Vintage Story کجا ذخیره میشوند؟
اطلاعات World در Vintage Story معمولاً در یک فایل با پسوند .vcdbs ذخیره میشوند.
این فایل میتواند شامل اطلاعات مهمی درباره دنیای بازی، تغییرات بازیکنان و بخشهای ذخیرهشده World باشد.
در ساختار این مقاله، مسیر معمول Save به شکل زیر است:
/var/lib/vintagestory/Saves/default.vcdbs
مسیر دقیق را باید از مقدار SaveFileLocation در serverconfig.json بررسی کنید.
پیدا کردن فایل World
در Linux:
sudo find /var/lib/vintagestory -type f -name "*.vcdbs"
برای مشاهده مسیر تنظیمشده:
jq -r '.WorldConfig.SaveFileLocation' /var/lib/vintagestory/serverconfig.json
انتقال World از Single Player به Dedicated Server
اگر قبلاً در حالت Single Player یک World ساختهاید، میتوانید آن را به Dedicated Server منتقل کنید.
مراحل کلی عبارتاند از:
- بازی و سرور را متوقف کنید.
- از World فعلی Backup بگیرید.
- فایل .vcdbs را از سیستم شخصی به سرور منتقل کنید.
- فایل را در پوشه Saves قرار دهید.
- مقدار SaveFileLocation را با نام فایل هماهنگ کنید.
- مالکیت فایل را به کاربر vintagestory بدهید.
- سرور را اجرا کنید و World را بررسی کنید.
برای مثال، اگر نام فایل IranicaWorld.vcdbs باشد، مقدار مسیر میتواند چنین باشد:
"SaveFileLocation": "/var/lib/vintagestory/Saves/IranicaWorld.vcdbs"
این مقدار باید داخل بخش WorldConfig فایل اصلی قرار بگیرد.
آموزش Backup گرفتن از World در Vintage Story
تهیه Backup برای سرورهای Vintage Story اهمیت زیادی دارد؛ زیرا World ممکن است حاصل ساعتها بازی، ساختوساز و پیشرفت بازیکنان باشد.
بهتر است از دو نوع Backup استفاده کنید: نسخه پشتیبان داخلی بازی برای World و نسخه پشتیبان کامل از اطلاعات و تنظیمات سرور.
روش اول: Backup با دستور داخلی بازی
در کنسول مدیریتی سرور:
/genbackup
این دستور از Save فعلی یک نسخه پشتیبان ایجاد میکند و طبق مستندات بازی میتواند بدون توقف سرور اجرا شود.
برای تعیین نام اختصاصی، در نسخههایی که این قابلیت را پشتیبانی میکنند:
/genbackup before-update
مسیر خروجی Backup را از پیام کنسول و تنظیمات نسخه نصبشده بررسی کنید.
روش دوم: Backup کامل فایلها در Linux
برای تهیه نسخه سازگار از تمام دادهها، ابتدا سرور را بهصورت صحیح متوقف کنید:
sudo systemctl stop vintagestory
سپس پوشه Backup را بسازید:
sudo mkdir -p /var/backups/vintagestory
برای تهیه آرشیو:
sudo tar -czf "/var/backups/vintagestory/vs-$(date +%Y%m%d-%H%M%S).tar.gz" -C /var/lib vintagestory
این دستور از پوشه اطلاعات سرور شامل Save، تنظیمات و Modهای موجود در DataPath نسخه پشتیبان تهیه میکند.
پس از تکمیل Backup، سرویس را دوباره اجرا کنید:
sudo systemctl start vintagestory
بررسی فایل Backup
برای مشاهده آرشیوهای ساختهشده:
sudo ls -lh /var/backups/vintagestory/
برای بررسی فهرست محتویات یک آرشیو مشخص:
tar -tzf /var/backups/vintagestory/YOUR_BACKUP_FILE.tar.gz | head -30
YOUR_BACKUP_FILE باید با نام واقعی فایل جایگزین شود.
برای اطمینان بیشتر، یک بار بازیابی آزمایشی روی سرور جداگانه انجام دهید. وجود فایل ZIP یا tar.gz بهتنهایی تضمین نمیکند که اطلاعات قابل بازیابی هستند.
بازیابی World از Backup
برای بازیابی، ابتدا سرور را متوقف کنید و از وضعیت فعلی نیز Backup بگیرید.
سپس فایلهای آرشیو را در یک پوشه موقت استخراج کنید و پس از بررسی ساختار، فایلهای موردنیاز را به مسیر DataPath منتقل کنید.
بهتر است بدون بررسی محتویات آرشیو، کل آن را مستقیماً روی World فعال استخراج نکنید.
پس از بازیابی، مالکیت فایلها را بررسی کرده و سرور را اجرا کنید.
چند نسخه Backup نگه داریم؟
برای سرور فعال، یک برنامه نمونه میتواند شامل Backup روزانه، نسخه هفتگی و نگهداری یک نسخه خارج از ماشین اصلی باشد.
تعداد نسخهها باید با ظرفیت ذخیرهسازی و اهمیت World هماهنگ شود. برای Worldهای بزرگ، رشد حجم Backup را مرتب بررسی کنید.
آپدیت Vintage Story Server بدون حذف World و Mods
در Vintage Story، آپدیت فایلهای برنامه باید از دادههای World جدا انجام شود.
طبق راهنمای رسمی، هنگام نصب نسخه جدید Linux بهتر است فایلهای قدیمی برنامه را با فایلهای نسخه جدید جایگزین کنید و از ترکیب فایلهای چند نسخه متفاوت جلوگیری کنید.
اما اگر Save داخل پوشه برنامه قرار گرفته باشد، حذف فایلهای قدیمی میتواند باعث از دست رفتن اطلاعات شود.
به همین دلیل، در این آموزش DataPath را خارج از پوشه برنامه قرار دادیم.
مرحله اول: بررسی نسخه جدید
به اخبار و تغییرات رسمی Vintage Story مراجعه کنید و Release Notes نسخه جدید را بخوانید.
سازگاری Modها و Runtime موردنیاز را بررسی کنید.
مرحله دوم: تهیه Backup
قبل از Update از World، تنظیمات و Modها Backup بگیرید.
اگر Modهای زیادی دارید، فهرست نسخههای نصبشده را نیز نگهداری کنید.
مرحله سوم: توقف سرور
sudo systemctl stop vintagestory
مرحله چهارم: آمادهسازی نسخه جدید در پوشه جدا
بهجای استخراج نسخه جدید روی فایلهای قدیمی، ابتدا پوشه جداگانه بسازید:
sudo mkdir -p /opt/vintagestory/server-new
sudo tar -xzf /tmp/vintagestory-server.tar.gz -C /opt/vintagestory/server-new
این دستور فرض میکند آرشیو جدید و معتبر را قبلاً دانلود کردهاید.
پس از بررسی فایلهای نسخه جدید، میتوانید با برنامهریزی و حفظ نسخه قبلی برای Rollback، مسیر سرویس را به پوشه جدید تغییر دهید.
در این روش نیازی به حذف یا جایگزینی پوشه /var/lib/vintagestory نیست.
مرحله پنجم: بررسی Modها
قبل از اجرای نسخه جدید، Modهای ناسازگار را شناسایی کنید.
اگر Mod مهمی هنوز با نسخه جدید سازگار نیست، بهتر است Update را تا انتشار نسخه مناسب آن Mod به تعویق بیندازید.
مرحله ششم: راهاندازی و تست
پس از هماهنگ کردن مسیر ExecStart با نسخه جدید و اجرای systemctl daemon-reload، سرور را Start کنید و Logها را بررسی کنید.
سپس با یک Client سازگار وارد شوید و عملکرد World، موجودات، بلوکها و Modها را آزمایش کنید.
برای Rollback، فقط برگرداندن فایل اجرایی کافی نیست؛ اگر نسخه جدید ساختار Save را تغییر داده باشد، باید Backup سازگار قبل از Update را نیز بازیابی کنید.
بهینهسازی مصرف RAM و CPU سرور Vintage Story
اگر Vintage Story Server با تعداد بازیکنان کم هم کند اجرا میشود، باید مصرف منابع را بررسی کنید.
۱. تعداد Chunkهای فعال را کنترل کنید
هرچه بازیکنان مناطق بیشتری را همزمان بارگذاری کنند، فشار روی حافظه و پردازنده بیشتر میشود.
گزینه MaxChunkRadius میتواند در محدود کردن شعاع Chunkهای بارگذاریشده نقش داشته باشد.
مقادیر را بهصورت تدریجی تغییر دهید و تأثیر آنها را روی تجربه بازیکنان اندازهگیری کنید.
۲. مصرف Modها را بررسی کنید
Modهایی که موجودات، ساختارها یا محاسبات مداوم اضافه میکنند ممکن است مصرف منابع را افزایش دهند.
اگر پس از نصب یک Mod مصرف CPU بالا رفت، آن را روی World آزمایشی بررسی کنید.
۳. مصرف حافظه فرایند را مشاهده کنید
در Linux:
free -h
ps -eo pid,comm,%cpu,%mem,rss --sort=-rss | head -15
برای بررسی وضعیت سرویس:
systemctl status vintagestory --no-pager
۴. وضعیت دیسک را بررسی کنید
df -h
du -sh /var/lib/vintagestory
اگر فضای دیسک کم شده است، اندازه World و Backupها را بررسی کنید. فایلهای Backup را بدون اطمینان از داشتن نسخه سالم دیگر حذف نکنید.
۵. عملکرد سرور را از داخل بازی بررسی کنید
دستور زیر اطلاعاتی درباره عملکرد و وضعیت سرور نمایش میدهد:
/stats
برای تشخیص مشکل واقعی، آمار بازی را در کنار مصرف CPU، RAM و دیسک بررسی کنید.
رفع مشکلات رایج Vintage Story Server
| مشکل | علت احتمالی | راهحل |
|---|---|---|
| سرور اجرا نمیشود | Runtime ناسازگار یا مسیر اشتباه | بررسی dotnet و Log سرویس |
| بازیکن نمیتواند وارد شود | Whitelist فعال | افزودن نام کاربری به Whitelist |
| سرور در فهرست نیست | AdvertiseServer غیرفعال | بررسی تنظیمات نمایش عمومی |
| اتصال Timeout میشود | Firewall یا پورت بسته | بررسی پورت 42420 |
| Mod بارگذاری نمیشود | ModPaths اشتباه یا ناسازگاری نسخه | بررسی مسیر و Dependency |
| Client هنگام اتصال خطا میدهد | Mod ناسازگار یا دانلود ناقص | بررسی Modهای Client و Server |
| World قبلی نمایش داده نمیشود | SaveFileLocation اشتباه | بررسی مسیر فایل vcdbs |
| سرور RAM زیادی مصرف میکند | Chunkهای فعال یا Modهای سنگین | پایش منابع و تنظیمات |
| مشکل پس از آپدیت | ناسازگاری Mod یا Save | بررسی Log و Backup قبلی |
| خطای JSON | ساختار نامعتبر فایل تنظیمات | اعتبارسنجی با jq |
چرا سرور اجرا میشود اما هیچ بازیکنی نمیتواند وارد شود؟
ابتدا Whitelist را بررسی کنید. در نسخههای جدید، Dedicated Server بهصورت پیشفرض ورود کاربران غیرمجاز را محدود میکند.
اگر نام کاربری در Whitelist قرار دارد، پورت، نسخه Client و Modهای موردنیاز را بررسی کنید.
چرا بعد از نصب Mod سرور Crash میکند؟
ممکن است Mod با نسخه بازی سازگار نباشد یا به یک Dependency نیاز داشته باشد.
Log را بررسی کنید و Mod جدید را در یک محیط آزمایشی غیرفعال کنید. برای World اصلی، بدون Backup اقدام به حذف Modهای محتوایی نکنید.
چرا بعد از آپدیت World قبلی باز نمیشود؟
ابتدا مقدار SaveFileLocation را بررسی کنید.
اگر مسیر صحیح است، احتمال ناسازگاری نسخه جدید با Modهای قبلی یا تغییر ساختار Save را بررسی کنید.
در این شرایط، قبل از هر عملیات تعمیر یا تبدیل داده، از فایل World یک کپی مستقل تهیه کنید.
سؤالات متداول درباره Vintage Story Server
آیا Vintage Story Dedicated Server روی Linux اجرا میشود؟
بله. Vintage Story بسته اختصاصی Linux Server ارائه میدهد و میتوانید آن را روی Ubuntu یا Debian اجرا کنید.
آیا برای ساخت سرور Vintage Story به SteamCMD نیاز داریم؟
خیر. فایلهای Dedicated Server از طریق صفحه دانلود رسمی Vintage Story دریافت میشوند و نصب آن مانند بعضی بازیهای SteamCMDمحور نیست.
پورت پیشفرض Vintage Story چیست؟
پورت پیشفرض 42420 است. برای اتصال بازیکنان باید دسترسی شبکه و Firewall متناسب با تنظیمات سرور فراهم باشد.
چرا بازیکنان نمیتوانند وارد سرور شوند؟
یکی از علتهای رایج فعال بودن Whitelist است. در Dedicated Serverهای نسخه 1.20 به بعد، Whitelist بهصورت پیشفرض فعال است.
چگونه یک بازیکن را به Whitelist اضافه کنیم؟
از دستور /player PlayerName whitelist on در کنسول مدیریتی استفاده کنید.
آیا برای اضافه کردن بازیکن به Whitelist باید سرور Restart شود؟
خیر. اضافه کردن بازیکن از طریق دستور رسمی معمولاً بدون Restart اعمال میشود.
چگونه در Vintage Story ادمین شویم؟
در کنسول مدیریتی از دستور /op PlayerName استفاده کنید و نام حساب خود را جایگزین کنید.
Mods سرور Vintage Story کجا قرار میگیرند؟
Modها در پوشهای قرار میگیرند که در ModPaths فایل serverconfig.json تعریف شده است. در این آموزش از /var/lib/vintagestory/Mods استفاده کردیم.
آیا باید ZIP مربوط به Mod را استخراج کنیم؟
در بیشتر موارد خیر. فایل ZIP را در پوشه Mods قرار دهید، مگر اینکه سازنده Mod دستور دیگری ارائه کرده باشد.
آیا Modها بهصورت خودکار برای بازیکنان دانلود میشوند؟
بسیاری از Modهای Server-side و Universal از طریق سیستم دریافت خودکار بازی مدیریت میشوند؛ اما این قابلیت برای تمام Modهای Client-side تضمین نشده است.
فایل Save بازی Vintage Story چه پسوندی دارد؟
World معمولاً در فایلی با پسوند .vcdbs ذخیره میشود. مسیر دقیق آن را میتوانید در SaveFileLocation مشاهده کنید.
چگونه بدون توقف سرور Backup بگیریم؟
دستور /genbackup برای ساخت نسخه پشتیبان از World فعال طراحی شده است و طبق مستندات میتواند هنگام اجرای سرور استفاده شود.
آیا آپدیت Vintage Story باعث حذف World میشود؟
اگر فایلهای World و برنامه را جدا نگه دارید و فقط فایلهای برنامه را با نسخه جدید جایگزین کنید، احتمال حذف ناخواسته دادهها کاهش مییابد. با این حال، پیش از Update باید Backup تهیه شود.
چرا بعد از آپدیت Modها کار نمیکنند؟
ممکن است نسخه جدید بازی API یا ساختارهایی را تغییر داده باشد که Mod به آنها وابسته است. باید نسخه سازگار Mod را دریافت کنید.
برای Vintage Story Server چقدر RAM لازم است؟
برای یک سرور کوچک میتوان با منابع متوسط شروع کرد، اما مقدار مناسب به تعداد بازیکنان، Modها و فعالیت World بستگی دارد. ظرفیت نهایی را بر اساس مصرف واقعی تعیین کنید.
جمعبندی
برای ساخت Vintage Story Server روی Linux، ابتدا فایل رسمی Dedicated Server را دانلود کنید و آن را با DataPath جداگانه اجرا کنید. سپس تنظیمات اصلی را در serverconfig.json انجام دهید و در صورت نیاز سرویس systemd بسازید.
برای مدیریت دسترسی بازیکنان از Whitelist استفاده کنید. در نسخههای جدید Vintage Story، این قابلیت بهصورت پیشفرض در Dedicated Server فعال است و باید نام کاربران مجاز را اضافه کنید.
برای نصب Modها، نسخه سازگار با بازی را از Vintage Story Mod DB دریافت کنید و فایلها را در مسیر Mods قرار دهید. پیش از آپدیت یا حذف Modهای مهم، حتماً از World نسخه پشتیبان تهیه کنید.
همچنین برای محافظت از اطلاعات، از دستور /genbackup و Backup کامل پوشه DataPath استفاده کنید. جدا نگه داشتن فایلهای برنامه و Save یکی از مهمترین اقدامات برای آپدیت ایمن سرور است.
منابع و مستندات معتبر
برای بررسی نصب Linux، مدیریت Whitelist، ساختار Modها، تنظیمات سرور و Backup از مستندات و راهنماهای زیر استفاده شده است.
۱. Vintage Story Wiki — Dedicated Server Guide
راهنمای راهاندازی Dedicated Server، ساخت DataPath، نصب Linux، مدیریت Modها و Whitelist.
۲. Vintage Story Wiki — Multiplayer Server Setup
مستندات تنظیم سرور چندنفره، پورت 42420، اجرای Linux و تنظیمات اولیه.
۳. Vintage Story Wiki — Server Config
مرجع کلیدهای serverconfig.json، تنظیمات WhitelistMode، MaxClients، ModPaths و WorldConfig.
۴. Vintage Story Wiki — Server Commands
فهرست دستورات مدیریت کاربران، Whitelist، ModDB، ذخیره World و تهیه Backup.
۵. Vintage Story Mod Database
مرجع اصلی دانلود Modها و بررسی نسخههای سازگار و وابستگیها.
۶. Vintage Story Wiki — Adding Mods
آموزش نصب Mod، دریافت خودکار فایلها هنگام اتصال و مدیریت ModsByServer.
۷. Vintage Story — Official Downloads
صفحه رسمی دریافت نسخههای بازی و فایلهای Dedicated Server برای سیستمعاملهای مختلف.
۸. Microsoft — .NET Downloads
مرجع رسمی دریافت Runtime مناسب برای اجرای بستههای مبتنی بر .NET.






دیدگاهها (۰)