دليل

حد 48 لاعبًا في FiveM وما الذي يغيّره OneSync

يصادف كل مالك سيرفر FiveM تقريبًا الرقم 48 عاجلًا أم آجلًا: فهو القيمة الافتراضية في ملف الإعداد النموذجي، وأقصى ما يستطيع السيرفر استيعابه من دون اشتراك مدفوع لدى Cfx.re. يشرح هذا الدليل من أين يأتي هذا الحد، وما الذي يفعله OneSync بطريقة مزامنة اللعبة، وما الذي تحتاجه لتجاوز 48، وما الذي يتغير في سكربتاتك وفي سيرفرك عندما تفعل ذلك. ويتبع الدليل توثيق Cfx.re كما هو في نوفمبر 2026.

بقلم فريق Evorxaتاريخ النشر

من أين يأتي الرقم 48

تلتقي قاعدتان عند 48. الأولى تقنية. يقول مرجع أوامر السيرفر إن sv_maxClients يقبل من 1 إلى 2048، لكن القيم بدءًا من 32 تتطلب ضبط onesync على on أو legacy، والقيم الأعلى من 64 تتطلب ضبطه على on. ومن دون OneSync تستخدم اللعبة نموذجها الأصلي من نظير إلى نظير (peer-to-peer)، ولا يفعل السيرفر سوى تمرير الحركة.

القاعدة الثانية هي الترخيص. وفقًا لـ توثيق OneSync، فإن OneSync مجاني حتى 48 خانة (slots). وفوق ذلك تحتاج إلى اشتراك على Cfx Portal، بدءًا من الفئة المسماة Element Club Argentum. وتقول صفحة مشاكل السيرفر لدى Cfx.re الشيء نفسه: أكثر من 48 خانة يتطلب Element Club Argentum أو أعلى.

ملاحظة: عدد الخانات الذي تسمح به كل فئة تحدده Cfx.re ويُذكر في صفحة الاشتراكات على Portal. تحقق منه هناك قبل أن تشتري فئة أو تختار حجم سيرفر، لأنه قد يتغير.

ما الذي يغيّره OneSync

OneSync هو نظام المزامنة الخاص بـ Cfx.re للعبة GTA V. بدلًا من أن يُخبر العملاء بعضهم بعضًا بحالة العالم، يحتفظ السيرفر بحالة الكيانات (اللاعبين والمركبات والشخصيات peds والأجسام) ويقرر أي عميل يحصل على أي بيانات. للمتغير onesync ثلاث قيم:

  • off: لا وعي بالحالة. يستخدم العملاء شبكات اللعبة من نظير إلى نظير، والسيرفر مجرد وسيط يمرّر الحركة.
  • on: وعي كامل بالحالة وتوجيه للكيانات يحدده السيرفر. هذا هو الوضع الذي يجب استخدامه.
  • legacy: وضع توافق للسكربتات التي تتوقع وجود كل لاعب لدى كل عميل. لا توصي به Cfx.re بسبب مشاكل الأداء والأخطاء الرسومية.

على FiveM for GTAV Enhanced لم يعد هناك خيار: فهو يستخدم نموذج عميل وسيرفر (client-server)، ووضع OneSync big mode هو الوضع الوحيد.

Infinity والـ culling

OneSync Infinity هو الجزء الذي يجعل السيرفرات الكبيرة ممكنة، وonesync_enableInfinity مفعّل افتراضيًا. تذكر Cfx.re دعمًا لما يصل إلى 2048 لاعبًا، وتقول إن هناك سيرفرات فيها أكثر من 1000 لاعب في الوقت نفسه. رفع Infinity الحد الأقصى لمعرّفات الأجسام (object IDs) من 8192 إلى 65535، وأضاف الـ culling: لا يُنشئ العملاء اللاعبين أو الكيانات الموجودة خارج منطقة تركيز (focus zone) نطاقها 424 وحدة حول اللاعب. لهذا يجب أن يعرف السيرفر، لا العميل، بوجود الجميع، ولهذا يجب أن تعمل الحلقات التي تمر على اللاعبين على السيرفر.

مفاتيح الترخيص وتجاوز 48

يحتاج كل سيرفر عام إلى مفتاح ترخيص من portal.cfx.re، يُضبط عبر sv_licenseKey. إذا أعددت السيرفر عبر txAdmin، فإن أداة نشر الوصفات (recipe deployer) تطلبه منك؛ أما على FXServer عادي فيوضع في server.cfg. وهذه كتلة إعداد بسيطة لسيرفر يصل إلى 48 لاعبًا، مطابقة لـ ملف server.cfg النموذجي:

server.cfg
# license key from portal.cfx.re
sv_licenseKey "your-license-key"

# server-side state awareness and entity routing
set onesync on

# the free limit
sv_maxclients 48

لتجاوز 48، تذكر صفحة مشاكل السيرفر ثلاث خطوات: استخدم أحدث إصدار (build) من السيرفر، واضبط sv_maxclients على قيمة أعلى من 48 ضمن حدود فئة اشتراكك، ثم أعد التشغيل.

server.cfg
# 1. update FXServer to the current recommended build
# 2. raise the slot count to what your subscription tier allows
sv_maxclients 64 # example value
# 3. restart the server

وتشير أدلة الإعداد أيضًا إلى خطأ شائع: إذا قال الكونسول إنه لم يُحدَّد مفتاح ترخيص، فأنت في الغالب تشغّل السيرفر من المجلد الخطأ أو من دون +exec server.cfg، فلم يُقرأ سطر المفتاح أصلًا.

للسيرفر التجريبي الخاص يوجد sv_lan true. يقول المرجع إنه يجعل السيرفر مقتصرًا على الشبكة المحلية (LAN): لا يظهر في قائمة السيرفرات العامة، ويُتخطّى التحقق من مفتاح الترخيص. وهو مناسب لاختبار السكربتات على جهازك، لا لسيرفر ينضم إليه اللاعبون عبر الإنترنت.

Routing buckets

تقسّم routing buckets، التي أُضيفت في server pipeline 3245، السيرفر الواحد إلى عوالم منفصلة. اللاعب أو الكيان داخل bucket لا يرى إلا اللاعبين والكيانات في الـ bucket نفسه، ولكل bucket شبكة خاصة به لتوزيع السكان (population). تقترحها Cfx.re للسيرفرات متعددة الأوضاع، والجلسات أو المجموعات (parties)، وشاشات اختيار الشخصية. وتقول صراحةً إنها ليست مخصصة للأماكن الداخلية (interiors).

لكل bucket وضع إغلاق (lockdown mode) يتحكم في ما يُسمح للعملاء بإنشائه:

أوضاع الإغلاق في routing buckets
الوضعالتأثير
strictلا يستطيع العملاء إنشاء أي كيانات.
relaxedيُحظر فقط ما ينشئه العملاء من كيانات مملوكة للسكربتات (script-owned).
inactiveيستطيع العملاء إنشاء أي كيان.
fullيعطّل أيضًا إنشاء الأجسام الوهمية (dummy objects). على GTAV Enhanced فقط.
server.lua
-- server-side Lua: put a player in bucket 1, a separate world
SetRoutingBucketEntityLockdownMode(1, "strict") -- clients cannot create entities
SetRoutingBucketPopulationEnabled(1, false)      -- no ambient population
SetPlayerRoutingBucket(source, 1)

ما الذي يتغير في سكربتاتك

نقل السيرفر من legacy أو off إلى on يعطّل السكربتات التي تفترض أن كل عميل يرى كل لاعب. هذه هي الأنماط التي توصي بها Cfx.re بدلًا من ذلك:

  • مرّ على اللاعبين في حلقة على السيرفر. العميل لا يعرف إلا اللاعبين داخل منطقة تركيزه، لذا فإن الحلقة على جانب العميل التي تمر على كل اللاعبين تفوّت معظمهم في سيرفر مزدحم.
  • أنشئ الكيانات على السيرفر. المركبات والشخصيات (peds) والأجسام التي ينشئها السيرفر تبقى تحت سيطرته. اضبط وضع اليتم (orphan mode) حتى لا يحذفها السيرفر.
  • استخدم state bags لمشاركة البيانات حول كيان ما، بدلًا من أحداث تُرسَل إلى كل عميل.
  • تجنّب أحداث النطاق (scope events). يُطلَق playerEnteredScope وplayerLeftScope مرة لكل لاعب في النطاق عند كل دخول وخروج، لذا تنمو كلفتهما مع عدد اللاعبين. في مثال Cfx.re، وجود 32 لاعبًا في نطاق لاعب واحد يعني 32 استدعاءً.
  • اقفل إنشاء الكيانات باستخدام bucket في وضع strict إذا لم يكن لدى العملاء سبب لإنشاء أشياء. تقدّم Cfx.re هذا على أنه الطريقة لمنع العملاء من إنشاء كيانات لأغراض خبيثة.
server.lua
-- server-side Lua: create the vehicle on the server and keep it
local vehicle = CreateVehicleServerSetter(GetHashKey("blista"), "automobile", x, y, z, heading)
SetEntityOrphanMode(vehicle, 2) -- the server will not delete it

ما الذي يكلّفه ذلك للسيرفر

مع تفعيل OneSync، يقوم السيرفر بعمل كان العملاء يقومون به: يحتفظ بحالة كل كيان ويقرر ما يحتاجه كل عميل. المزيد من اللاعبين يعني المزيد من هذا العمل، والمزيد من سكربتاتك الخاصة التي تعمل لكل لاعب. لا تنشر Cfx.re أرقامًا للعتاد حسب عدد اللاعبين، لذا اعتبر أي رقم تراه على الإنترنت مجرد تخمين، وقِس سيرفرك بنفسك مع مواردك الخاصة.

بعض المتغيرات تقايض الدقة بعمل أقل. قيمها الافتراضية أدناه؛ غيّر واحدًا في كل مرة وراقب التأثير:

server.cfg
# OneSync convars with their default values
set onesync_enableInfinity true       # startup only
set onesync_distanceCulling true
set onesync_distanceCullVehicles false
set onesync_population true           # false: no NPCs spawn
  • onesync_distanceCulling يُزيل الكيانات من المزامنة عندما تكون بعيدة وخارج مجال الرؤية. اتركه مفعّلًا.
  • onesync_distanceCullVehicles يطبّق الـ culling نفسه على المركبات. تشير Cfx.re إلى أنه قد يحسّن الأداء.
  • onesync_population يتحكم في ظهور الشخصيات غير القابلة للعب (NPC). لا تعطّله إلا إذا كان سيرفرك لا يجب أن يحتوي على سيارات عابرة أو مشاة في الخلفية. لتعطيل السكان في مكان واحد فقط، مثل شاشة اختيار الشخصية، استخدم SetRoutingBucketPopulationEnabled على ذلك الـ bucket.
  • على FiveM for GTAV Enhanced، تُعالَج تحديثات المزامنة بالتوازي افتراضيًا (onesync_multithreadedPacketProcessing)، وتقول Cfx.re إن ذلك يرفع القيد الرئيسي على عدد اللاعبين الذين يستطيع السيرفر استيعابهم.

يزداد حمل السكربتات مع عدد اللاعبين، لذا تحقق من أن السيرفر يصمد بعدد الخانات الحالي خلال ساعات الذروة قبل أن ترفعه.

قائمة تحقق قبل رفع الحد

  1. اعرف عدد الخانات التي تسمح بها فئتك في Cfx Portal، واشترك قبل أن تغيّر الإعداد.
  2. حدّث FXServer إلى الإصدار الموصى به حاليًا.
  3. اضبط onesync on. أي عدد فوق 64 خانة يتطلبه، وlegacy غير موصى به.
  4. ابحث في مواردك عن الحلقات على جانب العميل التي تمر على كل اللاعبين، وعن معالجات playerEnteredScope أو playerLeftScope، وانقل ذلك المنطق إلى السيرفر.
  5. راقب استهلاك عملية FXServer للمعالج في أكثر ساعاتك ازدحامًا مع مواردك الحقيقية، لا على سيرفر تجريبي جديد.
  6. ارفع sv_maxclients، وأعد التشغيل، وتحقق من عدد الخانات الظاهر لسيرفرك في قائمة السيرفرات.

FiveM على Evorxa

تعرض صفحة استضافة FiveM خطط Evorxa لـ FXServer: خطط VPS بأنوية مشتركة، وخطط VDS بأنوية مخصصة عالية التردد تناسب سيرفرًا فيه الكثير من اللاعبين والسكربتات. تحصل على صلاحيات root لتثبيت FXServer أو txAdmin ولضبط كل سطر في هذا الدليل؛ ويبقى مفتاح ترخيص Cfx.re وأي اشتراك في حساب Cfx الخاص بك. تبدأ الخطط من $2.99 شهريًا، وتُدفع مسبقًا شهريًا أو لستة أشهر أو سنويًا، وتعمل السيرفرات في منطقة واحدة هي Eygelshoven بهولندا.

المصادر

المعلومات في هذا الدليل مأخوذة من هذه الصفحات.

  1. توثيق Cfx.re: OneSync
  2. توثيق Cfx.re: أوامر السيرفر (sv_maxClients وonesync)
  3. توثيق Cfx.re: مشاكل السيرفر (48 خانة)
  4. توثيق Cfx.re: إعداد سيرفر vanilla
  5. Cfx.re: ملف server.cfg نموذجي