استضافة خادم Minecraft على VPS
شغّل خادم Minecraft (Paper) على VPS بـ Ubuntu 24.04: حجم RAM، وJava 21، ووحدة systemd، وفتح 25565 في كلا الجدارين، ونسخ احتياطية آمنة للعالم، ونصوص الأخطاء.
ما الذي تبنيه
خادم Minecraft Java Edition يبقى يعمل: Paper على Ubuntu 24.04، يعمل تحت مستخدم minecraft مخصص عبر systemd مع Restart=on-failure، والقائمة البيضاء (whitelist) مفعّلة، والمنفذ 25565 مفتوح في كلا جداري الحماية القائمين بين لاعبيك وآلة JVM، ونسخ احتياطية تُؤخذ بطريقة لا تُفسد العالم الذي وُجدت أصلًا لحمايته. الخادم نفسه ليس أكثر من ملف jar واحد وأمر java واحد؛ وكل ما يفرّق بين خادم يلعب عليه أصدقاؤك طوال عام كامل وخادم يموت في أول عطلة نهاية أسبوع يتمحور حول ذلك الأمر بالذات، وهذا ما يتناوله هذا الدليل.
تحذيران صادقان قبل أن تنفق مالًا. أولًا، Minecraft شَرِه للذاكرة وأحادي الخيط (thread) في الغالب: خادم VPS بذاكرة 1 غيغابايت لن يُشغّل خادمًا قابلًا للّعب عليه فعليًا، ونواة معالج واحدة سريعة أفضل من أربع نوى بطيئة. ثانيًا، هذا الدليل يتناول Java Edition. لاعبو Bedrock — أجهزة الكونسول، الهواتف، تطبيق Windows Bedrock — لا يستطيعون الانضمام إلى خادم Java؛ فـ Bedrock يحتاج إلى برنامج خادم مختلف على المنفذ UDP 19132، أو إضافة Geyser، وهو ما يخرج عن نطاق هذا الدليل.
تحتاج إلى خادم VPS جديد بنظام Ubuntu 24.04 من نوع KVM مع صلاحيات root أو sudo، ونحو ثلاثين دقيقة.
تحديد الحجم: ما الذي يحتاجه خادم بين الأصدقاء فعلًا
ذاكرة RAM هي الرقم الذي يهم، والأرقام الصادقة أقل مما توحي به منتديات الـ modpack:
- 2 غيغابايت تُشغّل نسخة vanilla لعدد يتراوح بين 2 و5 لاعبين بمسافة رؤية (view distance) متواضعة. قابلة للّعب، لكن بلا أي هامش إضافي.
- 4 غيغابايت هو الحجم المريح لخادم بين الأصدقاء: نحو عشرة لاعبين متزامنين على Paper مع حفنة من الإضافات (plugins)، وما يكفي من الذاكرة المتبقية لنظام التشغيل.
- 8 غيغابايت فأكثر هو نطاق الـ modpack والخوادم التي تضم أكثر من 20 لاعبًا، حيث يجب أن تهتم أيضًا بسرعة نواة المعالج الواحدة، لأن حلقة اللعبة الرئيسية (game loop) تعمل على خيط واحد فقط.
كما ينمو العالم على القرص مع استكشاف اللاعبين له — فعالم بقاء (survival) كثير الاستكشاف يصل إلى عدة غيغابايتات — لذا اترك هامشًا للعالم وأيضًا لنسخه الاحتياطية.
Vanilla أم Paper؟ Paper بديل مباشر لملف jar الرسمي: العوالم نفسها، والعملاء (clients) أنفسهم، من دون الحاجة إلى أي تعديلات (mods) من جهة العميل. إنه يعيد كتابة أبطأ مسارات الخادم — تحميل القطع (chunks)، تحديث الكيانات (entities)، القُمع (hoppers) — ويضيف واجهة برمجة تطبيقات (API) للإضافات. السبب الوحيد لتشغيل نسخة vanilla هو إن كنت تحتاج إلى ميكانيكا vanilla مطابقة تمامًا (bit-exact) لمزارع redstone تقنية قد تغيّرها تحسينات Paper؛ أما في كل الحالات الأخرى، فـ Paper يمنحك لاعبين أكثر لكل غيغابايت. كل ما يلي يعمل مع الاثنين.
الخطوة 1: ثبّت Java 21
يتطلب Minecraft الإصدار 1.20.5 وكل إصدار صدر بعده (كل إصدارات 1.21.x) وجود Java 21. يوفّره Ubuntu 24.04 في مستودعاته (repos) الافتراضية، والنسخة headless تتخطى مكتبات سطح المكتب التي لن يحتاجها الخادم أبدًا:
sudo apt update && sudo apt install -y openjdk-21-jre-headless
java -versionالنتيجة الصحيحة: السطر الأول يعرض openjdk version "21.0.x". إن ظهر 17 أو 11، فهذا يعني وجود JRE آخر مثبّت ويعمل بدلًا منه؛ أصلح ذلك بالأمر sudo update-alternatives --config java واختر الإدخال الذي يحتوي على java-21.
يؤدي تخطي هذا الفحص لاحقًا إلى الخطأ الأكثر بحثًا عنه في خوادم Minecraft على Google. مع Java 17، يموت jar الخادم فورًا برسالة:
Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been
compiled by a more recent version of the Java Runtime (class file version 65.0),
this version of the Java Runtime only recognizes class file versions up to 61.0هذه الأرقام تفسّر عدم التطابق: إصدار ملف الفئة (class file version) 65.0 يعني Java 21، و61.0 يعني Java 17، و60.0 يعني Java 16. أيًّا كان الزوج الذي تراه، الحل نفسه دائمًا: ثبّت JRE أحدث وأعد تشغيل update-alternatives.
الخطوة 2: مستخدم مخصص، لا root أبدًا
الخادم ينفّذ كود الإضافات (plugins) ويحلّل مدخلات الشبكة من أي شخص يستطيع الوصول إلى المنفذ. إن ساء الأمر يومًا، فإن اختراقًا يعمل بصلاحيات root يمتلك خادم VPS بأكمله؛ أما اختراق يعمل تحت مستخدم minecraft فلا يمتلك سوى عالم لعبة واحد.
sudo adduser --system --group --home /opt/minecraft minecraftالخيار --system ينشئ حسابًا بلا كلمة مرور لا يمكنه تسجيل الدخول عبر SSH، ويكون /opt/minecraft مجلده الرئيسي ومجلد عمله. من الآن فصاعدًا، كل أمر يتعامل مع الخادم يُنفَّذ تحت هذا المستخدم.
الخطوة 3: نزّل ملف jar الخادم من المصدر الرسمي
لا ينبغي أن يمنحك ملف jar الخادم إلا مصدران: صفحة تنزيل الخادم الرسمية على minecraft.net لنسخة vanilla، وصفحة التنزيلات على papermc.io لـ Paper. أما «مراكز التنزيل» التابعة لجهات خارجية والتي تعيد تغليف ملفات jar الخوادم فهي قناة برمجيات خبيثة قديمة العهد — فملف jar الخادم كود عشوائي أنت على وشك تشغيله على مدار الساعة طوال أيام الأسبوع (24/7) على جهاز مكشوف على الإنترنت.
انسخ رابط تنزيل النسخة (build) الحالية من الصفحة الرسمية (يتغيّر الرابط مع كل إصدار وبناء، فترميز رابط ثابت هنا سيصبح باليًا سريعًا)، ثم:
cd /opt/minecraft
sudo -u minecraft wget -O server.jar 'PASTE-THE-COPIED-URL-HERE'النتيجة الصحيحة: ملف server.jar بحجم نحو 50 ميغابايت مملوك لـ minecraft، تتأكد منه بالأمر ls -lh /opt/minecraft/server.jar.
الخطوة 4: التشغيل الأول، اتفاقية EULA، ومنح نفسك صلاحية Op
شغّل الخادم تفاعليًا مرة واحدة قبل أن تلمس systemd — فللتشغيل الأول مهمتان لا تؤديهما جيدًا إلا وحدة تحكم (console) حيّة.
cd /opt/minecraft
sudo -u minecraft java -Xms1G -Xmx1G -jar server.jar noguiيتوقف خلال ثوانٍ — إذ يقضي Paper بضع لحظات إضافية أولًا في تطبيق تصحيحاته — وينتهي السجل بالسطر الذي يصادفه الجميع:
[ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.هذا ليس خطأً؛ إنه بوابة ترخيص. ينشئ هذا التشغيل ملف eula.txt بجانب الـ jar. اقرأ اتفاقية EULA المرتبطة إن لم تكن قد فعلت، ثم بدّل القيمة:
sudo -u minecraft sed -i 's/eula=false/eula=true/' /opt/minecraft/eula.txtشغّل أمر java نفسه مرة أخرى. هذه المرة يُولِّد العالم — دقيقة أو دقيقتان في أول إقلاع — ويستقر عند:
[Server thread/INFO]: Done (9.204s)! For help, type "help"لديك الآن وحدة تحكم حيّة. استخدمها للمهمة الثانية: اكتب op YourMinecraftName (اسم مستخدمك الدقيق داخل اللعبة) ليُدرجك الخادم في ملف ops.json، بحيث يمكنك لاحقًا — حين لا تكون هناك وحدة تحكم متصلة — تنفيذ كل أوامر الإدارة من داخل اللعبة نفسها. ثم اكتب stop للحفظ والخروج بأمان.
الخطوة 5: server.properties، ولماذا يبقى online-mode مضبوطًا على true
ينشئ التشغيل الأول أيضًا ملف server.properties. معظم القيم الافتراضية جيدة؛ وهذه هي الأسطر التي تستحق قرارًا واعيًا:
online-mode=true
white-list=true
enforce-whitelist=true
view-distance=8
max-players=10
motd=A private server for people I actually knowonline-mode=true تجعل الخادم يتحقق من كل اسم مستخدم منضم مقابل خوادم جلسات Mojang، مما يثبت أن اللاعب يملك الحساب فعلًا. ضبطها على false — خيار «الخادم المكسور (cracked)» — يعني أن الخادم يصدّق أي عميل فيما يخص هويته: يمكن لأي شخص الانضمام بأي اسم، بما في ذلك اسمك أنت، ولأن صلاحيات الـ op والقائمة البيضاء تُحدَّد بالاسم، فإن منتحلًا يدخل بصلاحيات المشرف (operator) الخاصة بك. السبب المشروع الوحيد لضبطها على false هو وجود وكيل (proxy) مصادقة مثل Velocity يتولى التحقق من اللاعبين بنفسه. أما على خادم عادي فتبقى true، ولا مجال للنقاش.
view-distance هي أكبر رافعة أداء في الملف — إذ تتناسب تكلفة المعالج والذاكرة تقريبًا مع مربّعها. القيمة 8 افتراضية معقولة لخادم VPS؛ أما 10 فهي القيمة الافتراضية في نسخة vanilla وأثقل بوضوح.
white-list=true مع enforce-whitelist=true تُغلق الخادم أمام الغرباء، وهذا ما يعتبره قسم الأمان أدناه غير اختياري. أضف اللاعبين بالأمر /whitelist add TheirName داخل اللعبة بصفتك op.
الخطوة 6: خيارات الذاكرة — لماذا يجب أن يتطابق -Xms مع -Xmx
تخصص JVM كومتها (heap) بين -Xms (الحجم الابتدائي) و-Xmx (السقف). على خادم لعبة مخصص، اضبطهما على القيمة نفسها: فالكومة ستصل إلى السقف على أي حال، وتنميتها على مراحل لا تضيف سوى المزيد من نشاط جامع القمامة (garbage collector) أثناء اللعب. على خادم VPS بذاكرة 4 غيغابايت، الزوج الصحيح هو:
/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui-Xmx ليست إجمالي الذاكرة التي تستخدمها العملية. فـ JVM تضيف نفقات خارج الكومة (off-heap) — مكدّسات الخيوط (thread stacks)، ذاكرات JIT المؤقتة، المخازن المؤقتة المباشرة (direct buffers) — تبلغ نحو نصف غيغابايت أو أكثر، ويحتاج Ubuntu نفسه إلى مساحة. القاعدة العملية: اجعل -Xmx بحد أقصى يساوي ذاكرة VPS الكلية ناقص 1 غيغابايت. تجاوز هذا الحد وستحصل على أحد فشلين. إن فشل التخصيص من البداية، يرفض الخادم البدء برسالة:
Error: Could not reserve enough space for object heapهذا الفشل واضح وفوري. أما النسخة الأخبث فتبدأ بلا مشكلة ثم تموت بعد ساعات، حين تمتلئ الكومة تحت الحِمل ويختار قاتل OOM (OOM killer) في النواة أكبر عملية على الجهاز — وهي JVM. لا يظهر شيء في سجل الخادم؛ والدليل موجود في sudo dmesg | grep -i oom، بسطر يشبه Out of memory: Killed process 1234 (java). إذا كانت خدمتك تعيد التشغيل «بلا سبب واضح»، تحقق من هناك أولًا، وخفّض -Xmx.
بالنسبة إلى Paper، يوثّق المشروع ما يُعرف بـ أعلام Aikar (Aikar's flags) — مجموعة إعدادات G1GC مضبوطة بعناية (-XX:+UseG1GC -XX:MaxGCPauseMillis=200 ودزينة من رفاقها) تُنعِّم توقفات جمع القمامة على الكومات الأكبر. ولِّد السطر الكامل من توثيق Paper؛ على كومة بين 2 و4 غيغابايت يكون المكسب متواضعًا لكن الأعلام غير ضارة.
الخطوة 7: وحدة systemd مع Restart=on-failure
الخادم الذي يُشغَّل يدويًا يموت مع انتهاء جلسة SSH ويبقى متوقفًا بعد إعادة الإقلاع. اكتب ملف /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft server (Paper)
After=network-online.target
Wants=network-online.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now minecraft
systemctl status minecraft
journalctl -u minecraft -fالنتيجة الصحيحة: يعرض status القيمة active (running)، وينتهي الـ journal — الذي يحمل الآن مخرجات وحدة تحكم الخادم — عند سطر Done مرة أخرى.
خياران متعمَّدان في هذه الوحدة. Restart=on-failure يعيد تشغيل الخادم بعد انهيار، لكن ليس بعد stop نظيف، بحيث تبقى الصيانة ممكنة. أما TimeoutStopSec=120 فأهميته أكبر مما يبدو: يرسل systemctl stop إشارة SIGTERM، ويلتقطها خادم Minecraft فيحفظ كل عالم قبل الخروج، وعلى عالم كبير يستغرق هذا الحفظ وقتًا. والمهلة الافتراضية لـ systemd قد ترسل SIGKILL إلى JVM في منتصف الحفظ، وهذا بالضبط ما يُفسد ملفات المناطق (region files). امنحه دقيقتين.
إذا كانت الخدمة تتذبذب (تتوقف وتُعاد تلقائيًا) وأظهر الـ journal:
[Server thread/WARN]: **** FAILED TO BIND TO PORT!
[Server thread/WARN]: The exception was: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address already in use
[Server thread/WARN]: Perhaps a server is already running on that port?فهذا يعني أن شيئًا ما يشغل المنفذ 25565 بالفعل — وغالبًا ما يكون تشغيلك السابق في المقدمة (foreground) لا يزال حيًّا في جلسة SSH أخرى. اعثر عليه بالأمر sudo ss -tlnp | grep 25565 وأوقف تلك النسخة؛ ولا تُشغّل أبدًا خادمين على المنفذ نفسه.
الخطوة 8: افتح المنفذ 25565 في جداري الحماية كليهما
يستخدم Minecraft Java منفذ TCP رقم 25565 فقط (أما UDP فهو مجرد بروتوكول استعلام اختياري، معطّل افتراضيًا). على خادم VPS:
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enableهذا هو جدار الحماية الأول. تشغّل معظم شركات استضافة VPS جدار حماية ثانيًا على مستوى الشبكة داخل لوحة التحكم، وهو الذي ينساه الناس عادة. افتح TCP 25565 هناك أيضًا. عَرَض الاكتفاء بفتح واحد فقط من الاثنين غامض إلى حد مزعج: يتجمد العميل عند «Connecting to the server...» ويفشل برسالة Connection timed out: no further information — لا رفض، ولا خطأ من الخادم، ولا شيء في الـ journal، لأن الحزم لم تصل أصلًا. تحقق من جهاز خارج VPS بالأمر nc -vz your.server.ip 25565؛ ظهور succeeded يعني أن كلا جداري الحماية مفتوحان، أما التجمّد فيعني أن واحدًا منهما على الأقل ليس كذلك.
وبما أنك في ufw، فإن الجهاز نفسه يشغّل SSH على عنوان IP عام، ويبدأ ضجيج محاولات القوة الغاشمة في السجلّات خلال ساعات — جهّز Fail2ban لحماية SSH على Ubuntu 24.04 قبل أن تنسى.
اتصل الآن: Multiplayer، ثم Direct Connection، ثم عنوان IP الخادم. ولأنك منحت نفسك صلاحية op في الخطوة 4، تعمل أوامر اللعبة فورًا — /whitelist add FriendName لكل لاعب، و/gamemode creative إن كانت هذه هي الخطة.
الخطوة 9: القائمة البيضاء، لأن الإنترنت يجد المنفذ 25565
ترك خادم Minecraft مفتوحًا على الإنترنت ليس خطرًا نظريًا: تمسح أدوات مسح جماعية (scanners) نطاق IPv4 بأكمله بحثًا عن المنفذ 25565 باستمرار — وقد رسمت مشاريع هواة لمضايقة اللاعبين (griefing) خرائط لمئات الآلاف من الخوادم المفتوحة بهذه الطريقة — وخادم بلا قائمة بيضاء يستقبل زوارًا غير مدعوين خلال أيام، وأحيانًا خلال ساعات. القائمة البيضاء من الخطوة 5 هي الحل: online-mode=true تُثبت الهوية، والقائمة البيضاء تحصر الدخول في الهويات التي اخترتها أنت. هذا الثنائي هو نموذج الأمان بأكمله، وهو كافٍ لخادم بين الأصدقاء.
للوصول إلى وحدة التحكم دون اللعبة نفسها — نسخ احتياطية مُبرمَجة (scripted)، أو مهمة cron — فعّل RCON في server.properties (enable-rcon=true، مع rcon.password قوية، والمنفذ 25575) وابنِ عميل mcrcon الصغير من مصدره على GitHub مباشرة على VPS نفسه؛ فهو غير موجود في مستودعات Ubuntu. ولا تفتح المنفذ 25575 في أي جدار حماية: فـ RCON يرسل كلمة المرور نصًّا صريحًا (cleartext)، لذا يجب أن يبقى مقتصرًا على loopback فقط.
الخطوة 10: نسخ احتياطية لا تُفسد العالم
القاعدة الوحيدة: لا تنسخ مجلد العالم أبدًا أثناء كتابة الخادم إليه. تُعاد كتابة ملفات المناطق (region files) باستمرار أثناء اللعب؛ وأمر tar الذي يتسابق مع عملية كتابة ينتج أرشيفًا يحوي قطعًا (chunks) نصف مكتوبة، وحين تستعيده في النهاية — وهي اللحظة الوحيدة التي يجب أن تعمل فيها النسخة الاحتياطية — يمتلئ السجل بأخطاء تحميل القطع وتظهر ثقوب في التضاريس. هناك ممارستان تتجنبان هذا.
الإيقاف ثم النسخ ثم التشغيل (stop-copy-start) هي الطريقة البسيطة، بتكلفة دقيقة من التوقف عن العمل:
sudo systemctl stop minecraft
sudo mkdir -p /opt/backups
sudo tar czf /opt/backups/world-$(date +%F-%H%M).tgz \
-C /opt/minecraft world world_nether world_the_end
sudo systemctl start minecraft(يقسّم Paper الأبعاد إلى world وworld_nether وworld_the_end؛ أما خادم vanilla فيحتفظ بكل شيء داخل world، فاحذف المجلدين الآخرين في تلك الحالة.)
Save-off تأخذ نسخة احتياطية أثناء تشغيل الخادم: عبر RCON، نفّذ save-off (لإيقاف الحفظ التلقائي)، ثم save-all flush (لإجبار كل شيء على الكتابة إلى القرص والانتظار)، ثم خذ الأرشيف بـ tar، ثم save-on. هذه هي النسخة التي تضعها في cron الساعة 5 صباحًا.
على أي حال، النسخة الاحتياطية التي تبقى على VPS نفسه الذي يعمل عليه الخادم ليست نسخة احتياطية — انقل الأرشيفات خارج الجهاز بـ scp أو rclone، واحتفظ بأكثر من نسخة واحدة. وبما أنك لن تكون محدقًا في وحدة التحكم حين ينكسر شيء ما، ضع فحصًا خارجيًا على المنفذ: Uptime Kuma على جهاز آخر يجري فحص TCP على المنفذ 25565 ويخبرك بتوقف الخادم قبل أن يكتشف ذلك لاعبوك.
الإضافات (Plugins) والترقيات
على Paper، الإضافة (plugin) هي ملف jar يُوضع في /opt/minecraft/plugins/ ثم إعادة تشغيل — هذا هو التثبيت كله. احصل على الإضافات فقط من صفحات مشاريعها الرسمية (Hangar، Modrinth، SpigotMC)، للسبب نفسه الخاص بملف jar الخادم: كل إضافة هي كود عشوائي يعمل تحت مستخدم minecraft.
ترقية الخادم تعني: الإيقاف، أخذ نسخة احتياطية، استبدال server.jar ببناء إصدار Minecraft الجديد، ثم التشغيل. تحذيران. ترقية العالم اتجاه واحد لا رجعة فيه — فالعالم الذي فُتح بإصدار أحدث لن يُفتح في إصدار أقدم، وهذه مهمة أخرى تناسب النسخ الاحتياطية. كما أن الإضافات كثيرًا ما تتأخر عن إصدار Minecraft الجديد بأيام أو أسابيع، فتحقق من التوافق قبل مطاردة إصدار في يومه الأول.
إن كنت تفضّل إدارة كل هذا كحاوية (container) — تثبيت إصدار محدد (version pinning)، وقبول اتفاقية EULA، وخيارات الذاكرة كمتغيرات بيئة — فإن صورة itzg/minecraft-server الشائعة الاستخدام تشغّل خادم Paper نفسه تحت Docker Compose على خادم VPS الخاص بك بالانضباط نفسه في جدار الحماية والنسخ الاحتياطي.
FAQ
كم من ذاكرة RAM يحتاجها خادم Minecraft؟
2 غيغابايت تُشغّل نسخة vanilla لعدد 2 إلى 5 لاعبين؛ و4 غيغابايت مريحة لخادم بين الأصدقاء يضم نحو عشرة لاعبين على Paper مع بضع إضافات؛ أما الـ modpacks وأكثر من 20 لاعبًا فتحتاج إلى 8 غيغابايت أو أكثر. أيًّا كان حجم VPS، اضبط -Xmx بحد أقصى على إجمالي RAM ناقص 1 غيغابايت — فـ JVM تستخدم ذاكرة تتجاوز الكومة، وتجاوز الحد ينتهي إما برسالة Error: Could not reserve enough space for object heap أو بعملية قتل OOM صامتة.
لماذا لا يستطيع أصدقائي الاتصال بخادم Minecraft الخاص بي؟
تجمّد العميل المنتهي برسالة Connection timed out: no further information يعني في الغالب وجود جدار حماية، وهناك اثنان: ufw على VPS، وجدار حماية الشبكة الخاص بمزوّد الخدمة في لوحة التحكم. يجب أن يكون TCP 25565 مفتوحًا في كليهما. تأكد من أن الخادم يستمع فعلًا بالأمر sudo ss -tlnp | grep 25565 على الجهاز، ثم اختبر من الخارج بالأمر nc -vz your.server.ip 25565.
هل ينبغي ضبط online-mode=false في server.properties؟
لا. مع online-mode=false يتخطى الخادم مصادقة Mojang كليًا، فيستطيع أي شخص الانضمام بأي اسم مستخدم — بما في ذلك اسم أحد المشرفين (op)، فيرث صلاحياته — وتتعطل الأشكال (skins) ومعرّفات UUID الثابتة. الاستخدام المشروع الوحيد هو خلف وكيل مصادقة مثل Velocity يتحقق من اللاعبين بنفسه. أما على خادم عادي فتبقى القيمة true.
هل Paper أفضل من خادم Minecraft الرسمي (vanilla)؟
نعم، بالنسبة إلى الجميع تقريبًا: Paper ملف jar بديل مباشر يحمّل عوالم vanilla، ويقبل عملاء غير معدَّلين، ويحدّث الكيانات ويحمّل القطع بكفاءة أعلى بكثير، ويضيف منظومة الإضافات. الاستثناء هو مجتمعات redstone التقنية التي تحتاج إلى سلوك vanilla مطابق تمامًا، وهو ما تغيّره بعض تحسينات Paper. على خادم VPS صغير، تُعادل كفاءة Paper ذاكرة RAM إضافية مجانية فعليًا.
كيف أنسخ عالم Minecraft احتياطيًا من دون إفساده؟
لا تؤرشف مجلد العالم أبدًا أثناء كتابة الخادم إليه — فنسخ يتسابق مع كتابة ملف منطقة (region file) ينتج قطعًا (chunks) تالفة لا تكتشفها إلا وقت الاستعادة. إما أن توقف الخادم، وتؤرشف مجلدات العالم بـ tar، ثم تعيد تشغيله، أو تبقيه يعمل مستخدمًا save-off ثم save-all flush ثم tar ثم save-on عبر RCON. ثم انقل الأرشيف خارج VPS.