يغطي هذا الدليل استكشاف الأخطاء المتقدمة للتعديلات (Mods) على خوادم Project Zomboid المستضافة مع Legion Hosting. إذا لم تقم بتثبيت التعديلات بعد، ابدأ بـدليل تثبيت التعديلات الأساسي أولاً. يتناول هذا المقال أكثر المشاكل شيوعاً المتعلقة بالتعديلات التي تظهر في تذاكر دعم Legion Hosting، بما في ذلك تلف WorldDictionary وأخطاء تنسيق التعديلات وتعارضات ترتيب التحميل وعدم تطابق الإصدارات بين الخادم والعميل.
قبل أن تبدأ
- سجّل الدخول إلى GPanel واختر خادم Project Zomboid الخاص بك.
- أوقف خادمك قبل إجراء أي تغييرات في الإعدادات أو الملفات.
- انسخ احتياطياً مجلد حفظ العالم (
/.cache/saves/multiplayer/) عبر SFTP أو GPanel قبل محاولة أي إصلاح. راجع دليل SFTP إذا لم تكن معتاداً على نقل الملفات. - جهّز مسار ملف
.iniالخاص بخادمك:/.cache/server/<servername>.ini(مثال:servertest.ini).
1. أخطاء تنسيق التعديلات (B42 مقابل B41)
السبب الأكثر شيوعاً لفشل تحميل التعديلات هو التنسيق غير الصحيح في سطر Mods= في ملف .ini الخاص بخادمك. يستخدم Build 42 و Build 41 صيغاً مختلفة، والخلط بينهما سيؤدي إلى فشل صامت في تحميل تعديلاتك.
تنسيق B42 (الافتراضي الحالي)
يتطلب Build 42 بادئة شرطة مائلة عكسية قبل كل Mod ID في سطر Mods=:
Mods=\ModID1;\ModID2;\ModID3;
يجمع تنسيق DLMP بين Workshop IDs و Mod IDs بفاصل شرطة مائلة عكسية:
Mods=2392987841\ModID1;1550458773\ModID2;2786383654\ModID3;
يستخدم سطر WorkshopItems= نفس التنسيق المفصول بفواصل منقوطة في كلا الإصدارين:
WorkshopItems=2392987841;1550458773;2786383654
تنسيق B41 (القديم)
يستخدم Build 41 معرّفات التعديلات مفصولة بفواصل منقوطة بسيطة بدون شرطة مائلة عكسية:
Mods=ModID1;ModID2;ModID3
Mods= بالكامل ليشمل بادئة الشرطة المائلة العكسية.
كيفية الإصلاح
- افتح
/.cache/server/<servername>.iniفي مدير الملفات في GPanel. - ابحث عن سطر
Mods=وتحقق من التنسيق مقارنةً بالأمثلة أعلاه. - إذا كان التنسيق خاطئاً لإصدار البناء الخاص بك، قم بتصحيحه. استخدم منظّم تعديلات Legion Hosting لإنشاء سطور منسقة بشكل صحيح تلقائياً.
- احفظ الملف وشغّل الخادم.
2. تلف WorldDictionary
WorldDictionary هو ملف (WorldDictionary.bin) يربط أسماء العناصر بمعرّفات رقمية داخلية. عند إضافة أو إزالة تعديلات، يمكن أن يتلف القاموس، مما يتسبب في تعطل الخادم عند بدء التشغيل مع خطأ WorldDictionaryException.
الأعراض
- تظهر وحدة التحكم أو
debug.logأخطاءWorldDictionaryExceptionأوWorldDictionary. - يتعطل الخادم فوراً أثناء بدء التشغيل، تحديداً أثناء تحميل العالم.
- بدأ التعطل بعد إضافة أو إزالة أو تحديث التعديلات.
فهم المخاطر
خطوات الاستعادة
- أوقف خادمك في GPanel.
- انسخ احتياطياً مجلد الحفظ بالكامل عبر SFTP: حمّل المجلد الكامل
/.cache/saves/multiplayer/<YourWorldName>/إلى جهازك المحلي. - أولاً، حاول ببساطة التراجع عن تغيير التعديل الذي تسبب في الخطأ. إذا أضفت تعديلاً للتو، أزله من كل من
Mods=وWorkshopItems=في ملف.ini. إذا أزلت تعديلاً للتو، أعده مرة أخرى. شغّل الخادم وتحقق مما إذا تم حل التعطل. - إذا لم ينجح التراجع عن تغيير التعديل، اتصل عبر SFTP وانتقل إلى
/.cache/saves/multiplayer/<YourWorldName>/. - احذف
WorldDictionary.bin. - شغّل الخادم. سيقوم Project Zomboid بإعادة إنشاء القاموس عند بدء التشغيل.
- انضم إلى الخادم وافحص العالم بحثاً عن عناصر تالفة أو مركبات مفقودة أو مخزونات معطلة. إذا كان العالم متضرراً بشدة، استعد من النسخة الاحتياطية التي أنشأتها في الخطوة 2.
3. تعارضات تعديل Authentic Z
Authentic Z هي واحدة من أكثر مجموعات تعديلات Project Zomboid شعبية، لكنها مصدر متكرر لتذاكر الدعم لأنها تحتوي على عدة تعديلات فرعية تتعارض مع بعضها البعض.
القاعدة
Authentic Z - Current.
الأخطاء الشائعة
- إضافة كل من
Authentic Z - CurrentوAuthentic Z - Litemodeفي نفس الوقت. - إضافة تعديلات فرعية من Authentic Z مصممة للعب الفردي بجانب إصدار اللعب الجماعي.
- عدم إدراك أن تعديلات Authentic Z الفرعية المختلفة تشترك في نفس Workshop ID ولكن لها Mod IDs مختلفة، لذا ينجح تحميل Workshop لكن الخادم يحمّل ملفات تعديلات متعارضة.
كيفية الإصلاح
- افتح
/.cache/server/<servername>.iniفي مدير الملفات في GPanel. - ابحث في سطر
Mods=عن كل إدخال يحتوي علىAuthenticأوAuthenticZ. - أبقِ على تعديل فرعي واحد فقط من Authentic Z (الموصى به:
Authentic Z - Current). أزل جميع إدخالات Authentic Z الأخرى من كل من سطريMods=وWorkshopItems=. - احفظ الملف وأعد تشغيل الخادم.
4. مشاكل حساسية حالة الأحرف في Linux
تعمل خوادم Legion Hosting على Linux، حيث تكون أسماء الملفات والمجلدات حساسة لحالة الأحرف. ملف باسم MyMod.lua و mymod.lua يُعاملان كملفين مختلفين تماماً. يسبب هذا مشاكل عندما يطوّر مؤلفو التعديلات على Windows (غير حساس لحالة الأحرف) وتحتوي تعديلاتهم على مراجع ملفات غير متطابقة.
الأعراض
- يعمل التعديل بشكل مثالي في اللعب الفردي على جهاز Windows الخاص بك لكنه يفشل على الخادم.
- تظهر وحدة التحكم أو
debug.logأخطاءFileNotFoundExceptionأوcan't find fileتشير إلى سكريبت Lua أو نسيج داخل تعديل. - يشير الخطأ إلى ملف موجود فعلاً في مجلد التعديل، لكن بأحرف كبيرة/صغيرة مختلفة (مثال: الكود يشير إلى
Items.txtلكن اسم الملف الفعلي هوitems.txt).
كيفية التشخيص
- تحقق من وحدة التحكم أو ملفات السجل في
/.cache/Logs/للعثور على مسار الملف المذكور في الخطأ بالضبط. - اتصل عبر SFTP وانتقل إلى مجلد التعديل في
/steamapps/workshop/content/108600/<WorkshopID>/. - قارن أسماء الملفات على القرص مع اسم الملف المشار إليه في رسالة الخطأ. ابحث عن اختلافات في حالة الأحرف.
كيفية الإصلاح
- إذا كان بإمكانك إعادة تسمية الملف: اتصل عبر SFTP وأعد تسمية الملف ليتطابق مع حالة الأحرف المتوقعة من كود التعديل. لاحظ أن هذا الإصلاح سيُكتب فوقه إذا تم تحديث التعديل على Steam Workshop.
- إذا كانت المشكلة في التعديل نفسه: أبلغ عن الخلل لمؤلف التعديل على صفحة Steam Workshop. اذكر أن مرجع الملف يحتوي على عدم تطابق في حالة الأحرف وأنه يفشل على خوادم Linux. كثير من مؤلفي التعديلات ليسوا على دراية بحساسية حالة الأحرف في Linux.
- كحل بديل: تحقق من تعليقات صفحة Workshop الخاصة بالتعديل — قد يكون مشغلو خوادم Linux الآخرون قد نشروا إصلاحاً أو نسخة متوافقة من التعديل.
5. مشاكل ترتيب تحميل التعديلات
يحمّل Project Zomboid التعديلات بالترتيب الذي تظهر به في سطر Mods=. بعض التعديلات تعتمد على تعديلات أخرى يجب تحميلها أولاً. إذا تم تحميل تبعية بعد التعديل الذي يتطلبها، فقد يفشل التعديل التابع بصمت أو يتسبب في أخطاء.
الأعراض
- ميزات التعديل تعمل جزئياً — بعض العناصر أو الأنظمة من تعديل موجودة لكن أخرى مفقودة.
- تظهر وحدة التحكم أخطاء
NullPointerExceptionأوattempt to index a nil valueتشير إلى سكريبتات Lua الخاصة بالتعديل. - تظهر الأخطاء فقط عند تثبيت مجموعة محددة من التعديلات، لكن كل تعديل يعمل بشكل جيد بمفرده.
كيفية الإصلاح
- تحقق من صفحة Steam Workshop لكل تعديل بحثاً عن قسم "التعديلات المطلوبة" أو "ترتيب التحميل". يحدد العديد من مؤلفي التعديلات أي تعديلات يجب تحميلها قبل تعديلهم.
- افتح
/.cache/server/<servername>.iniوابحث عن سطرMods=. - أعد ترتيب الإدخالات بحيث تظهر تعديلات التبعيات قبل التعديلات التي تتطلبها. على سبيل المثال، إذا كان التعديل B يتطلب التعديل A، يجب أن يكون السطر
Mods=\ModA;\ModB;(تنسيق B42). - يجب أن تُدرج تعديلات الأطر والمكتبات (مثل
ModFrameworkوTsarLibأوShark's Mod Utils) أولاً دائماً في سطرMods=. - احفظ الملف وأعد تشغيل الخادم.
6. تعطل الخادم بعد إضافة التعديلات
إذا كان خادمك يعمل بشكل جيد وتعطل بعد إضافة تعديل واحد أو أكثر، فمن المرجح أن التعديل الجديد هو السبب. يرشدك هذا القسم لعزل التعديل المسبب للمشكلة.
العزل خطوة بخطوة
- أوقف الخادم في GPanel.
- افتح
/.cache/server/<servername>.iniفي مدير الملفات. - دوّن جميع التعديلات التي أضفتها للتو. أزل جميعها من كل من سطري
Mods=وWorkshopItems=. - شغّل الخادم. إذا بدأ بنجاح، فالمشكلة في أحد التعديلات التي أزلتها.
- أعد إضافة التعديلات واحداً تلو الآخر، مع إعادة تشغيل الخادم بعد كل إضافة. عندما يعود التعطل، فإن آخر تعديل أضفته هو السبب.
- بمجرد تحديده، تحقق من صفحة Workshop الخاصة بالتعديل بحثاً عن:
- ملاحظة حول توافق B42 — العديد من تعديلات B41 لم يتم تحديثها لـ B42.
- تعارضات معروفة مع تعديلات أخرى تستخدمها.
- تعديلات تبعيات مطلوبة قد لا تكون مثبتة لديك.
قراءة سجل التعطل
قبل إجراء عملية العزل، تحقق من سجل التعطل — غالباً ما يشير مباشرة إلى التعديل المسبب للمشكلة:
- في GPanel، افتح تبويب Console ومرر إلى نهاية المخرجات.
- ابحث عن سطور
STACK TRACEأوExceptionأوERROR. - السطور الموجودة مباشرة فوق تتبع المكدس عادةً ما تشير إلى اسم ملف تعديل أو Mod ID — وهذا يخبرك أي تعديل تسبب في التعطل.
- لمزيد من التفاصيل، افتح ملف السجل الكامل عبر SFTP في
/.cache/Logs/وتحقق من أحدث ملفDebugLog-server.txtأوdebug.log.
7. عدم تطابق إصدارات التعديلات (الخادم مقابل العميل)
يتطلب Project Zomboid أن يكون لدى الخادم وجميع العملاء المتصلين نفس إصدار كل تعديل. إذا تم تحديث تعديل على Steam Workshop وحمّل الخادم الإصدار الجديد لكن لا يزال لدى لاعب الإصدار القديم مخزّناً محلياً (أو العكس)، ستحدث أخطاء في الاتصال أو تعطلات.
الأعراض
- يحصل اللاعبون على خطأ "Mod mismatch" أو "Version mismatch" عند محاولة الاتصال.
- بعض اللاعبين يمكنهم الاتصال لكن آخرين لا يمكنهم — الذين لا يمكنهم الاتصال لديهم إصدار مختلف من التعديل مخزّن محلياً.
- كان الخادم يعمل بشكل جيد، ثم تم تحديث تعديل على Steam Workshop وفجأة لا يمكن لبعض اللاعبين الانضمام.
- يرى اللاعبون نسيجاً مفقوداً أو عناصر أو عناصر واجهة مستخدم معطلة من تعديلات تم تحديثها مؤخراً.
الإصلاح لمشغلي الخادم
- أوقف الخادم في GPanel.
- شغّل الخادم مرة أخرى. عند بدء التشغيل، يعيد الخادم تحميل أحدث إصدارات جميع تعديلات Workshop. هذا يضمن أن الخادم يعمل بأحدث إصدار.
- إذا كان لا يزال لدى الخادم إصدار قديم مخزّن، اتصل عبر SFTP واحذف مجلد ذاكرة التخزين المؤقت للتعديل المحدد في
/steamapps/workshop/content/108600/<WorkshopID>/. أعد تشغيل الخادم لفرض تحميل نظيف.
الإصلاح للاعبين
اللاعبون الذين لا يمكنهم الاتصال بسبب عدم تطابق إصدارات التعديلات يجب عليهم:
- فتح Steam والانتقال إلى Library → Project Zomboid.
- النقر بزر الماوس الأيمن على Project Zomboid واختيار Properties → Local Files → Verify Integrity of Game Files.
- أيضاً الانتقال إلى مجلد Steam Workshop لـ Project Zomboid على أجهزتهم المحلية وحذف ملفات التعديلات المخزّنة مؤقتاً لفرض إعادة التحميل.
- تشغيل اللعبة والاتصال بالخادم مرة أخرى.
/.cache/mods/ على الخادم بدلاً من استخدام التحديث التلقائي لـ Workshop. أزل Workshop ID المقابل من سطر WorkshopItems= لمنع التحديثات التلقائية. راجع دليل تثبيت التعديلات لتعليمات تثبيت التعديلات بدون Workshop.
8. مسح ذاكرة التخزين المؤقت لـ Steam Workshop
إذا استمرت مشاكل تعديلات متعددة وتشتبه في أن ذاكرة التخزين المؤقت لتحميل Workshop تالفة، يمكنك فرض إعادة تحميل كاملة لجميع تعديلات Workshop.
- أوقف الخادم في GPanel.
- اتصل عبر SFTP وانتقل إلى
/steamapps/workshop/. - احذف مجلد
workshop/بالكامل (أو محتوياته). - شغّل الخادم. سيعيد Steam تحميل جميع عناصر Workshop من الصفر.
- راقب وحدة تحكم GPanel للتأكد من انتهاء تحميل جميع التعديلات قبل أن يبدأ الخادم في تحميل العالم.
مرجع التشخيص السريع
| ما تراه | السبب الأكثر احتمالاً | القسم |
|---|---|---|
| التعديلات لا تُحمَّل، لا توجد أخطاء في السجل | تنسيق تعديلات خاطئ (تنسيق B41 على خادم B42 أو العكس) | 1. أخطاء تنسيق التعديلات |
WorldDictionaryException في وحدة التحكم |
تلف WorldDictionary من إضافة/إزالة التعديلات | 2. تلف WorldDictionary |
| تعطل الخادم مع عدة تعديلات فرعية من Authentic Z | تعديلات فرعية متعارضة من Authentic Z محمّلة في وقت واحد | 3. تعارضات Authentic Z |
FileNotFoundException لملف تعديل موجود |
عدم تطابق حساسية حالة الأحرف في Linux | 4. مشاكل حساسية حالة الأحرف |
أخطاء NullPointerException أو nil value من التعديلات |
ترتيب تحميل تعديلات غير صحيح أو تبعية مفقودة | 5. مشاكل ترتيب التحميل |
STACK TRACE بعد إضافة تعديلات جديدة |
تعديل غير متوافق أو متعارض | 6. التعطل بعد إضافة التعديلات |
| "Mod mismatch" أو "Version mismatch" عند الاتصال | الخادم والعميل لديهما إصدارات مختلفة من التعديلات | 7. عدم تطابق الإصدارات |
| مشاكل تعديلات متعددة، لا شيء آخر يعمل | ذاكرة تخزين مؤقت تالفة لـ Workshop | 8. ذاكرة التخزين المؤقت لـ Workshop |
لا تزال تواجه مشاكل في التعديلات؟
إذا لم تكن مشكلة التعديل الخاصة بك مذكورة أعلاه أو لم تحل الإصلاحات المشكلة، افتح تذكرة دعم مع المعلومات التالية لمساعدة فريق الدعم في تشخيص المشكلة بسرعة:
- إصدار بناء خادمك (B41 أو B42)، يظهر في وحدة التحكم عند بدء التشغيل
- سطرا
Mods=وWorkshopItems=الكاملان من ملف.iniالخاص بك - آخر 50 سطراً من مخرجات وحدة تحكم GPanel وقت التعطل
- محتويات أحدث ملف سجل في
/.cache/Logs/ - أي التعديلات تمت إضافتها أو إزالتها أو تحديثها مباشرة قبل بدء المشكلة
- هل تحدث المشكلة عند بدء التشغيل أم فقط عند اتصال اللاعبين
افتح تذكرة دعم وأرفق معرّف خادمك والتفاصيل المذكورة أعلاه.