غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.
الإعدادات عن بُعد تتيح لك التحكّم في القيم ومفاتيح الميزات من الخادم، فتضبط لعبتك، وتتحكّم
في إتاحة الميزات، وتجري التجارب دون أي تحديث لدى العميل.
النطاق: تُحدَّد الإعدادات عن بُعد لكل إصدار لعبة؛ وتصل التجاوزات المضبوطة لكل شريحة ولكل لاعب إلى قراءات اللعبة حين يسجّل اللاعب دخوله.
لوحة التحكم
Unity
Unreal
أدِر قيم الإعدادات ومفاتيح الميزات لإصدار لعبة من لوحة التحكم، وتجاوزها لشريحة أو للاعب واحد. ويصل
التجاوز إلى اللعبة حين يسجّل اللاعب دخوله: فحزمة التطوير تقرأ حينها الإعدادات للاعب المسجَّل دخوله.
أدِر قيم الإعدادات عن بُعد ومفاتيح الميزات من لوحة التحكم.
افتح تبويب Code Generation في Flock → Settings واضغط Sync Schemas لتحويل كل إعداد إلى صنف
C# مُحدَّد النوع. ويفترض المثال إعدادًا اسمه Gameplay بالحقول max_lives وspawn_rate
وwelcome_text، ويعمل داخل دالة async:
ويأتي اسم وسيط الوصول من إعدادك (Gameplay ← GetGameplayAsync)، ولا يوجد إلا بعد Sync Schemas.
اجلب الإعدادات عند بدء التشغيل واقرأ القيم بدل تثبيتها في الشيفرة.وتُستخرج القيم بأولوية التحديث: فحيث ينطبق تحديث على إصدار اللعبة الجاري
تحصل على القيمة المُحدَّثة، وإلا فعلى قيمة الإعداد نفسه — ولا تعرف شيفرتك أيّهما حدث.للاعب المسجَّل دخوله. حين يكون لاعب مسجَّل الدخول، تُعيد القراءة القيم التي يحسبها الخادم لذلك
اللاعب: لإعدادات اللعب والميزات، أحدث تحديث، ثم تجاوزات الشرائح التي ينتمي إليها، ثم
تجاوزات اللاعب نفسه (أما أنواع الإعدادات الأخرى فلا تجاوزات لها، وتُقرأ كما تُقرأ دون تسجيل دخول). وحين لا يكون أحد مسجَّل الدخول، تُعيد القيم العامة للعبة. وبعد أن يجيب الخادم تُحفظ قيم اللاعب طوال تسجيل الدخول ذاك،
فاللعبة التي تقرأ إعدادًا قبل دخول اللاعب (في شاشة العنوان مثلًا) تقرؤه مجددًا بعد دخوله، في معالج
FlockEvents.OnAuthenticated مثلًا. وإن لم تتلقَّ قراءة اللاعب جوابًا، أعادت القراءة قيم اللاعب المحفوظة،
وإلا فالقيم العامة للعبة، وطلبت قيم اللاعب مجددًا في قراءة بعد 30 ثانية أو أكثر.ويحسب الخادم قيم اللاعب لإصدار اللعبة الذي يرسله البناء، وإلا فللإصدار الذي سجّل اللاعب دخوله به آخر مرة.
ولا تُعيد القراءة القيم العامة للعبة، مع تحذير واحد في الـ Console لتسجيل الدخول ذاك، إلا حين لا يجد أيًّا
منهما (لا يرسل البناء إصدارًا، إذ لم يُستخرج أيّ إصدار في Flock → Settings، ولا إصدار مسجَّلًا للاعب).
فاستخرج إصدار اللعبة في Flock → Settings → Configuration، فيحصل اللاعب على قيمه الخاصة من قراءته
التالية بعد تسجيل الدخول.وحين تكون الذاكرة المؤقتة دون اتصال مفعّلة (Flock → Settings → Advanced Settings، Offline Cache)،
تُحفظ قراءات الإعدادات على القرص وتُقدَّم منه حين يتعذّر الوصول إلى الخادم، لكل لاعب على حدة: فيحصل
اللاعب العائد على قيمه الأخيرة دون اتصال، لا قيم لاعب آخر أبدًا، ويحصل اللاعب الذي لم تُقرأ قيمه عبر
الإنترنت قط على القيم العامة. وتحتاج الذاكرة المؤقتة إلى قراءة واحدة ناجحة عبر الإنترنت لتمتلئ، والرفض
الذي يقول إن اللاعب أو الإعداد غير موجود، أو إنه لا إصدار لعبة للقراءة، يحذف النسخة المحفوظة لذلك اللاعب.
توليد الكود هو المسار المقصود هنا، لا مجرّد تسهيل. فوسائط الوصول المُولَّدة المُحدَّدة النوع هي الواجهة
البرمجية العامة؛ ودون مزامنة، تقرأ GetByConfigIdAsync<T>(configId) إعدادًا بمعرّفه إلى صنف من صنعك.
Flock Resolve Config Data تعيد القيم الفعّالة لإصدار اللعبة قيد التشغيل — قيم التحديث إن
وُجد تحديث منطبق، وبيانات الإعداد نفسه فيما عدا ذلك. ولا يعرف مخطّطك أيّ الحالتين وقعت.
#include "FlockSubsystem.h"UFlockSubsystem* Sdk = UFlockSubsystem::Get(this); // this: any object in the game's world// The config's Id comes from its name, as the dashboard shows it.const TWeakObjectPtr<UFlockSubsystem> Flock = Sdk;Sdk->GetConfigProvider()->GetConfigByName(TEXT("difficulty"), [Flock](TFlockResult<FFlockGameConfigSchema> Config){ if (!Config.bSuccess || !Flock.IsValid()) { return; } Flock->GetConfigProvider()->ResolveConfigData(Config.Value.Id, [](TFlockResult<FFlockStructuredData> Data) { int32 Enemies = 5; // your own default, kept when the read fails or the value is missing if (Data.bSuccess) { Data.Value.TryGetInt(TEXT("enemies.count"), Enemies); } });});
يُستنتج الإعداد بمعرّفه Id، الذي تقرؤه GetConfigByName (Flock Get Config By Name) من الاسم الذي
تعرضه لوحة التحكم. واقرأ القيمة بمسارها المنقوط، محتفظًا بقيمتك الافتراضية حين تكون مفقودة: ففي Blueprint
تأخذ كلٌّ من Get Data Int وGet Data Float وGet Data String وGet Data Bool مسارًا وقيمة
احتياطية.
اقرأ إعداد الصعوبة باسمه، واستنتجه، واقرأ منه قيمة واحدة بقيمة احتياطية.
وبعد مزامنة المخطّطات تصبح عقدة واحدة تعيد بنية مُحدَّدة النوع:
Get Gameplay تجلب القيم وتستنتجها وتعيد بنية مُحدَّدة النوع — فكّكها للحصول على أطراف حقيقية.
للاعب المسجَّل دخوله. حين يكون لاعب مسجَّل الدخول، تُعيد Flock Resolve Config Data (وعقد Get
المُولَّدة التي تستدعيها) القيم التي يحسبها الخادم لذلك اللاعب: لإعدادات اللعب والميزات، أحدث تحديث، ثم
تجاوزات الشرائح التي ينتمي إليها، ثم تجاوزات اللاعب نفسه (أما أنواع الإعدادات الأخرى
فلا تجاوزات لها، وتُقرأ كما تُقرأ دون تسجيل دخول). وحين لا يكون أحد مسجَّل الدخول، تُعيد القيم العامة
للعبة. وبعد أن يجيب الخادم تُحفظ قيم اللاعب طوال تسجيل الدخول ذاك، فاللعبة التي تقرأ إعدادًا قبل دخول
اللاعب (في شاشة العنوان مثلًا) تقرؤه مجددًا بعد دخوله: اربط On Authenticated على مركز الأحداث واستنتج
الإعداد من جديد هناك. وإن رُفضت قراءة اللاعب (لا يعرف الخادم لاعبًا كهذا، أو لا إصدار لعبة لديه للقراءة، أو لا
إعداد بذلك الاسم)، أجابت القيم العامة للعبة بقية تسجيل الدخول؛ وإن لم تتلقَّ جوابًا، أجابت قيم اللاعب
المحفوظة، وإلا فالقيم العامة للعبة، وأُرسلت قراءة اللاعب مجددًا في قراءة بعد 30 ثانية أو أكثر.وحين لا يتلقّى الخادم إصدار لعبة مع الطلب، تُعيد القراءة القيم العامة للعبة، ويعرض Output Log تحذيرًا واحدًا
لتسجيل الدخول ذاك، مع طريقة الإصلاح: استخرج إصدار اللعبة (Tools → Flock → Resolve Game Version، أو
Project Settings → Plugins → Flock SDK Settings).وتُخزَّن قراءات الإعدادات مؤقتًا وتُقدَّم من القرص عند تعذّر الوصول إلى الخادم، لكل لاعب على حدة: فيحصل
اللاعب العائد على قيمه الأخيرة دون اتصال، لا قيم لاعب آخر أبدًا، ويحصل اللاعب الذي لم تُقرأ قيمه عبر
الإنترنت قط على القيم العامة.
مفاتيح الميزات — اشحن الكود معطّلًا، ثم فعّله للجميع، أو لشريحة معيّنة.
الضبط — عدّل معدّلات الإسقاط أو الأسعار أو الصعوبة مباشرةً.
التجارب — قدّم نسخًا مختلفة لشرائح مختلفة وقارن بينها عبر التحليلات.
وفّر دائمًا قيمًا افتراضية آمنة لدى العميل حتى تبقى لعبتك قابلة للعب إذا فشل جلب الإعدادات.
هل كانت هذه الصفحة مفيدة؟
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Qwacks","description":"Developer documentation for the Qwacks platform — Flock, Protokite, and Data Duck.","colors":{"primary":"#0099FF","light":"#33ADFF","dark":"#0077CC"},"logo":{"light":"https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/icons/qwacks.svg?fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=2023abb340d6ec576975601525ab2ce9","dark":"https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/icons/qwacks.svg?fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=2023abb340d6ec576975601525ab2ce9"},"favicon":"https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/icons/qwacks.svg?fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=2023abb340d6ec576975601525ab2ce9","appearance":{"default":"dark","strict":true},"background":{"image":{"light":"https://mintcdn.com/qwacks/YCE61raZ52-QoE_F/officalbg.jpg?fit=max\u0026auto=format\u0026n=YCE61raZ52-QoE_F\u0026q=85\u0026s=5be5500ff5788565cf90d6a3e2111d47","dark":"https://mintcdn.com/qwacks/YCE61raZ52-QoE_F/officalbg.jpg?fit=max\u0026auto=format\u0026n=YCE61raZ52-QoE_F\u0026q=85\u0026s=5be5500ff5788565cf90d6a3e2111d47"},"color":{"light":"#FFFFFF","dark":"#181E2E"}},"navbar":{"links":[{"href":"https://www.qwacks.com/pricing","label":"Pricing"},{"href":"https://github.com/QwackStack/FlockUnitySdk/releases","label":"Unity SDK"},{"href":"https://github.com/QwackStack/FlockUnrealSdk/releases","label":"Unreal SDK"}],"primary":{"type":"button","label":"Dashboard","href":"https://flock-saas.qwacks.com"}},"fonts":{"heading":{"family":"Readex Pro"},"body":{"family":"Inter"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":"welcome"},{"language":"ar","navbar":{"links":[{"href":"https://www.qwacks.com/pricing","label":"الأسعار"},{"href":"https://github.com/QwackStack/FlockUnitySdk/releases","label":"حزمة Unity"},{"href":"https://github.com/QwackStack/FlockUnrealSdk/releases","label":"حزمة Unreal"}],"primary":{"type":"button","label":"لوحة التحكم","href":"https://flock-saas.qwacks.com"}},"href":"ar/welcome"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qwacks","hasAudioNarration":false,"actualSubdomain":"qwacks","customDomains":["docs.qwacks.com"],"gitSource":{"type":"github","owner":"qwackstack","repo":"qwacksdocs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af5a22514affe1bdef08994","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"ar","tag":"Flock","count":32},{"language":"en","tag":"Flock","count":32},{"language":"ar","tag":"الميزات","count":23},{"language":"en","tag":"Features","count":23},{"language":"ar","tag":"Qwacks","count":12},{"language":"en","tag":"Qwacks","count":12},{"language":"ar","tag":"بدء الاستخدام","count":11},{"language":"en","tag":"Getting Started","count":11},{"language":"ar","tag":"اللعب الجماعي","count":5},{"language":"ar","tag":"Protokite","count":5},{"language":"ar","tag":"المدفوعات والفوترة","count":5},{"language":"en","tag":"Multiplayer","count":5},{"language":"en","tag":"Protokite","count":5},{"language":"en","tag":"Payments \u0026 Billing","count":5},{"language":"ar","tag":"اللاعبون","count":4},{"language":"ar","tag":"الاقتصاد والمدفوعات","count":4},{"language":"en","tag":"Players","count":4},{"language":"en","tag":"Economy and Payments","count":4},{"language":"ar","tag":"المفاهيم","count":3},{"language":"en","tag":"Concepts","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":".nav-logo{height:2.5rem!important;max-width:none!important}#topbar-cta-button .bg-primary-dark{background-color:#feca13!important}#topbar-cta-button:hover .bg-primary-dark{background-color:#f89c1c!important}#topbar-cta-button a,#topbar-cta-button a *{color:#1a1206!important}.qwacks-lang-toggle{display:inline-flex;align-items:center;align-self:center;gap:0.5rem;padding:0.25rem 1rem;border:1px solid rgba(255, 255, 255, 0.1);border-radius:56px;background:transparent;color:#fafafa;font-family:\"Readex Pro\", sans-serif;font-size:0.875rem;line-height:1.25rem;white-space:nowrap;margin-inline-start:auto;margin-inline-end:1rem}.qwacks-lang-toggle__option{color:inherit;text-decoration:none;font-weight:400;opacity:0.3}.qwacks-lang-toggle__option:hover{opacity:0.7}.qwacks-lang-toggle__option.is-active{font-weight:700;opacity:1}@media (min-width: 1024px){#localization-select-trigger{display:none!important}}:is(h1,h2,h3,h4){position:relative}:is(h1,h2,h3,h4)>div.absolute{left:auto;right:auto;inset-inline-end:0}:is(h1,h2,h3,h4)>div.absolute>a{margin-inline:0!important}"},{"filePath":"rtl.css","content":"html[data-current-path^=\"/ar\"]{direction:rtl}[dir=\"rtl\"]{direction:rtl}html[lang=\"ar\"]{direction:rtl}@media (min-width: 1024px){html[lang=\"ar\"] .lg\\:-ml-12{margin-left:0;margin-right:-3rem}html[lang=\"ar\"] .lg\\:pl-\\[5\\.7rem\\]{padding-left:0.25rem;padding-right:5.7rem}html[lang=\"ar\"] .lg\\:pl-\\[23\\.7rem\\]{padding-left:0.25rem;padding-right:23.7rem}}[dir=\"rtl\"] :is(pre,code,kbd,samp){direction:ltr;text-align:left}[dir=\"rtl\"] :not(pre)>code{unicode-bidi:isolate}[dir=\"rtl\"] pre>*{direction:ltr}[dir=\"rtl\"] .pl-3\\.5{padding-left:0;padding-right:0.875rem}[dir=\"rtl\"] .pl-3{padding-left:0;padding-right:0.75rem}[dir=\"rtl\"] .pl-4{padding-left:0;padding-right:1rem}[dir=\"rtl\"] .pr-3{padding-right:0;padding-left:0.75rem}[dir=\"rtl\"] .pr-4{padding-right:0;padding-left:1rem}[dir=\"rtl\"] .pr-8{padding-right:0;padding-left:2rem}[dir=\"rtl\"] .ml-2{margin-left:0;margin-right:0.5rem}[dir=\"rtl\"] .ml-4{margin-left:0;margin-right:1rem}[dir=\"rtl\"] .-ml-4{margin-left:0;margin-right:-1rem}[dir=\"rtl\"] .-ml-10{margin-left:0;margin-right:-2.5rem}[dir=\"rtl\"] .mr-2{margin-right:0;margin-left:0.5rem}[dir=\"rtl\"] .mr-4{margin-right:0;margin-left:1rem}[dir=\"rtl\"] .text-left{text-align:right}[dir=\"rtl\"] .text-right{text-align:left}[dir=\"rtl\"] .left-0{left:auto;right:0}[dir=\"rtl\"] .right-0{right:auto;left:0}[dir=\"rtl\"] .space-x-2>:not([hidden])~:not([hidden]),[dir=\"rtl\"] .space-x-3>:not([hidden])~:not([hidden]),[dir=\"rtl\"] .space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 1}[dir=\"rtl\"] .border-l{border-left-width:0;border-right-width:1px}[dir=\"rtl\"] .border-r{border-right-width:0;border-left-width:1px}@media (min-width: 1024px){[dir=\"rtl\"] .lg\\:-ml-12{margin-left:0;margin-right:-3rem}}[dir=\"rtl\"] :is(ul,ol){padding-left:0;padding-right:1.5rem}[dir=\"rtl\"] blockquote{border-left:0;border-right:4px solid currentColor;padding-left:0;padding-right:1rem}[dir=\"rtl\"] :is(th,td){text-align:right}[dir=\"rtl\"] .steps{margin-left:0;margin-right:0.875rem}[dir=\"rtl\"] .step>.absolute:not(.w-px){margin-left:0;margin-right:-13px}[dir=\"rtl\"] .step>:not(.absolute){padding-left:1px;padding-right:2rem}[dir=\"rtl\"] #table-of-contents{padding-inline-start:0.75rem;scrollbar-gutter:stable}[dir=\"rtl\"] #sidebar-content a[style*=\"padding-left\"]{padding-left:0!important;padding-right:1rem!important}[dir=\"rtl\"] .card .absolute{right:auto;left:1.25rem}[dir=\"rtl\"] .card .absolute svg{transform:scaleX(-1)}[dir=\"rtl\"] :is(.qwacks-flip-icon,[data-flip-rtl]) svg{transform:scaleX(-1)}[dir=\"rtl\"] #topbar-cta-button svg{transform:scaleX(-1)}[dir=\"rtl\"] .qwacks-lang-toggle svg{transform:none}[dir=\"rtl\"],[dir=\"rtl\"] body{font-family:\"Readex Pro\", system-ui, sans-serif;letter-spacing:normal;line-height:1.85}[dir=\"rtl\"] :is(h1,h2,h3,h4,h5,h6){font-family:\"Readex Pro\", system-ui, sans-serif;letter-spacing:normal;line-height:1.5}[dir=\"rtl\"] :is(pre,code,kbd,samp){font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;line-height:1.6}[dir=\"rtl\"]{font-variant-numeric:lining-nums}"}],"page":{"pagePath":"ar/guides/remote-config","slug":"/ar/guides/remote-config","pageMetadata":{"title":"الإعدادات عن بُعد","description":"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.","href":"/ar/guides/remote-config"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const Scope=({children})=>{const{Info}=_provideComponents()||{};if(!Info)_missingMdxReference(`Info`,true);return _jsxs(Info,{children:[_jsx(`b`,{children:`النطاق:`}),` `,children]})};function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Tab,Tabs,Tip,_MdxComponentBoundary}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`الإعدادات عن بُعد`}),` تتيح لك التحكّم في القيم ومفاتيح الميزات من الخادم، فتضبط لعبتك، وتتحكّم\nفي إتاحة الميزات، وتجري التجارب دون أي تحديث لدى العميل.`]}),`\n`,_jsx(_MdxComponentBoundary,{name:`Scope`,children:_jsxs(Scope,{children:[`تُحدَّد الإعدادات عن بُعد لكل `,_jsx(_components.strong,{children:`إصدار لعبة`}),`؛ وتصل التجاوزات المضبوطة لكل `,_jsx(_components.a,{href:`/ar/guides/segments`,children:`شريحة`}),` ولكل لاعب إلى قراءات اللعبة حين يسجّل اللاعب دخوله.`]})}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`لوحة التحكم`,id:`%D9%84%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85`,children:[_jsx(_components.p,{children:`أدِر قيم الإعدادات ومفاتيح الميزات لإصدار لعبة من لوحة التحكم، وتجاوزها لشريحة أو للاعب واحد. ويصل\nالتجاوز إلى اللعبة حين يسجّل اللاعب دخوله: فحزمة التطوير تقرأ حينها الإعدادات للاعب المسجَّل دخوله.`}),_jsx(Frame,{caption:`أدِر قيم الإعدادات عن بُعد ومفاتيح الميزات من لوحة التحكم.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/remote-config.png?fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=7e64fead96a8d7574a2408bde4b34540`,alt:`الإعدادات عن بُعد ومفاتيح الميزات`,\"data-og-width\":`1440`,width:`1440`,\"data-og-height\":`866`,height:`866`,\"data-path\":`images/guides/remote-config.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/remote-config.png?w=280\u0026fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=40fdd36707ad87eecca146cfdea05a2a 280w, https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/remote-config.png?w=560\u0026fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=df5c7da57314ada623c4eae108021bdb 560w, https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/remote-config.png?w=840\u0026fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=bbce81e0b4a62a49dd7f21311b582012 840w, https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/remote-config.png?w=1100\u0026fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=c2c7b280fbbc25c4242122f9323a0bae 1100w, https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/remote-config.png?w=1650\u0026fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=7e4c86d2116da16e0b5a5ecba7c28de0 1650w, https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/remote-config.png?w=2500\u0026fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=49549ba63309cdbfb41eff052074f736 2500w`})})]}),_jsxs(Tab,{title:`Unity`,id:`unity`,children:[_jsxs(_components.p,{children:[`افتح تبويب `,_jsx(_components.strong,{children:`Code Generation`}),` في `,_jsx(_components.strong,{children:`Flock → Settings`}),` واضغط `,_jsx(_components.strong,{children:`Sync Schemas`}),` لتحويل كل إعداد إلى صنف\nC# مُحدَّد النوع. ويفترض المثال إعدادًا اسمه `,_jsx(_components.code,{children:`Gameplay`}),` بالحقول `,_jsx(_components.code,{children:`max_lives`}),` و`,_jsx(_components.code,{children:`spawn_rate`}),`\nو`,_jsx(_components.code,{children:`welcome_text`}),`، ويعمل داخل دالة `,_jsx(_components.code,{children:`async`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`csharp`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`using`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Flock`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`using`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Flock`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Generated`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Configs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`GameplayConfig`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` gameplay`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` FlockClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Instance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`GetGameplayAsync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`float`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` spawnRate`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` gameplay`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`SpawnRate`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`int`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` maxLives`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` gameplay`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`MaxLives`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`ويأتي اسم وسيط الوصول من إعدادك (`,_jsx(_components.code,{children:`Gameplay`}),` ← `,_jsx(_components.code,{children:`GetGameplayAsync`}),`)، ولا يوجد إلا بعد `,_jsx(_components.strong,{children:`Sync Schemas`}),`.\nاجلب الإعدادات عند بدء التشغيل واقرأ القيم بدل تثبيتها في الشيفرة.`]}),_jsxs(_components.p,{children:[`وتُستخرج القيم `,_jsx(_components.strong,{children:`بأولوية التحديث`}),`: فحيث ينطبق `,_jsx(_components.a,{href:`/ar/guides/game-patches`,children:`تحديث`}),` على إصدار اللعبة الجاري\nتحصل على القيمة المُحدَّثة، وإلا فعلى قيمة الإعداد نفسه — ولا تعرف شيفرتك أيّهما حدث.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`للاعب المسجَّل دخوله.`}),` حين يكون لاعب مسجَّل الدخول، تُعيد القراءة القيم التي يحسبها الخادم لذلك\nاللاعب: لإعدادات اللعب والميزات، أحدث تحديث، ثم تجاوزات `,_jsx(_components.a,{href:`/ar/guides/segments`,children:`الشرائح`}),` التي ينتمي إليها، ثم\nتجاوزات اللاعب نفسه (أما أنواع الإعدادات الأخرى فلا تجاوزات لها، وتُقرأ كما تُقرأ دون تسجيل دخول). وحين لا يكون أحد مسجَّل الدخول، تُعيد القيم العامة للعبة. وبعد أن يجيب الخادم تُحفظ قيم اللاعب طوال تسجيل الدخول ذاك،\nفاللعبة التي تقرأ إعدادًا قبل دخول اللاعب (في شاشة العنوان مثلًا) تقرؤه مجددًا بعد دخوله، في معالج\n`,_jsx(_components.code,{children:`FlockEvents.OnAuthenticated`}),` مثلًا. وإن لم تتلقَّ قراءة اللاعب جوابًا، أعادت القراءة قيم اللاعب المحفوظة،\nوإلا فالقيم العامة للعبة، وطلبت قيم اللاعب مجددًا في قراءة بعد 30 ثانية أو أكثر.`]}),_jsxs(_components.p,{children:[`ويحسب الخادم قيم اللاعب لإصدار اللعبة الذي يرسله البناء، وإلا فللإصدار الذي سجّل اللاعب دخوله به آخر مرة.\nولا تُعيد القراءة القيم العامة للعبة، مع تحذير واحد في الـ Console لتسجيل الدخول ذاك، إلا حين لا يجد أيًّا\nمنهما (لا يرسل البناء إصدارًا، إذ لم يُستخرج أيّ إصدار في `,_jsx(_components.strong,{children:`Flock → Settings`}),`، ولا إصدار مسجَّلًا للاعب).\nفاستخرج إصدار اللعبة في `,_jsx(_components.strong,{children:`Flock → Settings → Configuration`}),`، فيحصل اللاعب على قيمه الخاصة من قراءته\nالتالية بعد تسجيل الدخول.`]}),_jsxs(_components.p,{children:[`وحين تكون الذاكرة المؤقتة دون اتصال مفعّلة (`,_jsx(_components.strong,{children:`Flock → Settings → Advanced Settings`}),`، `,_jsx(_components.strong,{children:`Offline Cache`}),`)،\nتُحفظ قراءات الإعدادات على القرص وتُقدَّم منه حين يتعذّر الوصول إلى الخادم، لكل لاعب على حدة: فيحصل\nاللاعب العائد على قيمه الأخيرة دون اتصال، لا قيم لاعب آخر أبدًا، ويحصل اللاعب الذي لم تُقرأ قيمه عبر\nالإنترنت قط على القيم العامة. وتحتاج الذاكرة المؤقتة إلى قراءة واحدة ناجحة عبر الإنترنت لتمتلئ، والرفض\nالذي يقول إن اللاعب أو الإعداد غير موجود، أو إنه لا إصدار لعبة للقراءة، يحذف النسخة المحفوظة لذلك اللاعب.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`توليد الكود هو المسار المقصود هنا، لا مجرّد تسهيل. فوسائط الوصول المُولَّدة المُحدَّدة النوع هي الواجهة\nالبرمجية العامة؛ ودون مزامنة، تقرأ `,_jsx(_components.code,{children:`GetByConfigIdAsync\u003cT>(configId)`}),` إعدادًا بمعرّفه إلى صنف من صنعك.`]})})]}),_jsxs(Tab,{title:`Unreal`,id:`unreal`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Flock Resolve Config Data`}),` تعيد القيم الفعّالة لإصدار اللعبة قيد التشغيل — قيم التحديث إن\nوُجد تحديث منطبق، وبيانات الإعداد نفسه فيما عدا ذلك. ولا يعرف مخطّطك أيّ الحالتين وقعت.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`cpp`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`cpp`,children:_jsxs(_components.code,{language:`cpp`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`#include`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"FlockSubsystem.h\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`UFlockSubsystem`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`*`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sdk `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` UFlockSubsystem`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`this`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // this: any object in the game's world`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// The config's Id comes from its name, as the dashboard shows it.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` TWeakObjectPtr`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`UFlockSubsystem`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Flock `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sdk;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Sdk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`GetConfigProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`GetConfigByName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`TEXT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"difficulty\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), [`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`Flock`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`](`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`TFlockResult`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`FFlockGameConfigSchema`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`> `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`Config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`bSuccess`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Flock`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`IsValid`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`())`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Flock`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`GetConfigProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ResolveConfigData`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, [](`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`TFlockResult`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`FFlockStructuredData`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`> `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`Data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` int32 Enemies `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // your own default, kept when the read fails or the value is missing`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`bSuccess`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`TryGetInt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`TEXT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"enemies.count\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), Enemies);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsxs(_components.p,{children:[`يُستنتج الإعداد بمعرّفه `,_jsx(_components.code,{children:`Id`}),`، الذي تقرؤه `,_jsx(_components.code,{children:`GetConfigByName`}),` (`,_jsx(_components.strong,{children:`Flock Get Config By Name`}),`) من الاسم الذي\nتعرضه لوحة التحكم. واقرأ القيمة بمسارها المنقوط، محتفظًا بقيمتك الافتراضية حين تكون مفقودة: ففي Blueprint\nتأخذ كلٌّ من `,_jsx(_components.strong,{children:`Get Data Int`}),` و`,_jsx(_components.strong,{children:`Get Data Float`}),` و`,_jsx(_components.strong,{children:`Get Data String`}),` و`,_jsx(_components.strong,{children:`Get Data Bool`}),` مسارًا وقيمة\nاحتياطية.`]}),_jsx(Frame,{caption:`اقرأ إعداد الصعوبة باسمه، واستنتجه، واقرأ منه قيمة واحدة بقيمة احتياطية.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/qwacks/MKbkfprdtExYWAeD/images/sdk/unreal/config-resolve.png?fit=max\u0026auto=format\u0026n=MKbkfprdtExYWAeD\u0026q=85\u0026s=4a8885834a2dc97fee091ac147457ffc`,alt:`حدث مخصّص Load Difficulty، ثم Flock Get Config By Name للإعداد difficulty، ثم Flock Resolve Config Data بمعرّفه، ثم Get Data Int للمسار enemies.count بالقيمة الاحتياطية 5 إلى Print String`,\"data-og-width\":`2039`,width:`2039`,\"data-og-height\":`489`,height:`489`,\"data-path\":`images/sdk/unreal/config-resolve.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qwacks/MKbkfprdtExYWAeD/images/sdk/unreal/config-resolve.png?w=280\u0026fit=max\u0026auto=format\u0026n=MKbkfprdtExYWAeD\u0026q=85\u0026s=a499609b087bd1a9e7654571646de9f3 280w, https://mintcdn.com/qwacks/MKbkfprdtExYWAeD/images/sdk/unreal/config-resolve.png?w=560\u0026fit=max\u0026auto=format\u0026n=MKbkfprdtExYWAeD\u0026q=85\u0026s=4680f73b6df600c871ac3a1514e6bb46 560w, https://mintcdn.com/qwacks/MKbkfprdtExYWAeD/images/sdk/unreal/config-resolve.png?w=840\u0026fit=max\u0026auto=format\u0026n=MKbkfprdtExYWAeD\u0026q=85\u0026s=475dcf54eb85c0b8d8e188782664db77 840w, https://mintcdn.com/qwacks/MKbkfprdtExYWAeD/images/sdk/unreal/config-resolve.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MKbkfprdtExYWAeD\u0026q=85\u0026s=868e4be9a530dd5513cddc2dc6dfd453 1100w, https://mintcdn.com/qwacks/MKbkfprdtExYWAeD/images/sdk/unreal/config-resolve.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MKbkfprdtExYWAeD\u0026q=85\u0026s=4021ce9e988287c3db7217cc911262c9 1650w, https://mintcdn.com/qwacks/MKbkfprdtExYWAeD/images/sdk/unreal/config-resolve.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MKbkfprdtExYWAeD\u0026q=85\u0026s=cc2c7223c4bcf4479d00dea0edf2afe7 2500w`})}),_jsxs(_components.p,{children:[`وبعد مزامنة المخطّطات تصبح `,_jsx(_components.strong,{children:`عقدة واحدة`}),` تعيد بنية مُحدَّدة النوع:`]}),_jsx(Frame,{caption:`Get Gameplay تجلب القيم وتستنتجها وتعيد بنية مُحدَّدة النوع — فكّكها للحصول على أطراف حقيقية.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/qwacks/xJEjgQCFVIWLhvHB/images/sdk/unreal/codegen-get-config.png?fit=max\u0026auto=format\u0026n=xJEjgQCFVIWLhvHB\u0026q=85\u0026s=1a823c39016fda2108f524d62d8c03b2`,alt:`عقدة ماكرو Get Gameplay مولَّدة تغذّي عقدة Break`,\"data-og-width\":`634`,width:`634`,\"data-og-height\":`345`,height:`345`,\"data-path\":`images/sdk/unreal/codegen-get-config.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qwacks/xJEjgQCFVIWLhvHB/images/sdk/unreal/codegen-get-config.png?w=280\u0026fit=max\u0026auto=format\u0026n=xJEjgQCFVIWLhvHB\u0026q=85\u0026s=6e9ebd18a1d7480e40d938a61e4cf7fb 280w, https://mintcdn.com/qwacks/xJEjgQCFVIWLhvHB/images/sdk/unreal/codegen-get-config.png?w=560\u0026fit=max\u0026auto=format\u0026n=xJEjgQCFVIWLhvHB\u0026q=85\u0026s=d6737be7866cb491e1dc7877b5f8085e 560w, https://mintcdn.com/qwacks/xJEjgQCFVIWLhvHB/images/sdk/unreal/codegen-get-config.png?w=840\u0026fit=max\u0026auto=format\u0026n=xJEjgQCFVIWLhvHB\u0026q=85\u0026s=44fe4d29b71347a5b3b89f7a5e646845 840w, https://mintcdn.com/qwacks/xJEjgQCFVIWLhvHB/images/sdk/unreal/codegen-get-config.png?w=1100\u0026fit=max\u0026auto=format\u0026n=xJEjgQCFVIWLhvHB\u0026q=85\u0026s=91c7715d1ab6fcf8d8995e51ab87fa7f 1100w, https://mintcdn.com/qwacks/xJEjgQCFVIWLhvHB/images/sdk/unreal/codegen-get-config.png?w=1650\u0026fit=max\u0026auto=format\u0026n=xJEjgQCFVIWLhvHB\u0026q=85\u0026s=5f2fc3f159bb1a9bb3717cf15a9ad4d9 1650w, https://mintcdn.com/qwacks/xJEjgQCFVIWLhvHB/images/sdk/unreal/codegen-get-config.png?w=2500\u0026fit=max\u0026auto=format\u0026n=xJEjgQCFVIWLhvHB\u0026q=85\u0026s=458382b749b49c83722c357050a00d4a 2500w`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`للاعب المسجَّل دخوله.`}),` حين يكون لاعب مسجَّل الدخول، تُعيد `,_jsx(_components.code,{children:`Flock Resolve Config Data`}),` (وعقد `,_jsx(_components.code,{children:`Get`}),`\nالمُولَّدة التي تستدعيها) القيم التي يحسبها الخادم لذلك اللاعب: لإعدادات اللعب والميزات، أحدث تحديث، ثم\nتجاوزات `,_jsx(_components.a,{href:`/ar/guides/segments`,children:`الشرائح`}),` التي ينتمي إليها، ثم تجاوزات اللاعب نفسه (أما أنواع الإعدادات الأخرى\nفلا تجاوزات لها، وتُقرأ كما تُقرأ دون تسجيل دخول). وحين لا يكون أحد مسجَّل الدخول، تُعيد القيم العامة\nللعبة. وبعد أن يجيب الخادم تُحفظ قيم اللاعب طوال تسجيل الدخول ذاك، فاللعبة التي تقرأ إعدادًا قبل دخول\nاللاعب (في شاشة العنوان مثلًا) تقرؤه مجددًا بعد دخوله: اربط `,_jsx(_components.strong,{children:`On Authenticated`}),` على مركز الأحداث واستنتج\nالإعداد من جديد هناك. وإن رُفضت قراءة اللاعب (لا يعرف الخادم لاعبًا كهذا، أو لا إصدار لعبة لديه للقراءة، أو لا\nإعداد بذلك الاسم)، أجابت القيم العامة للعبة بقية تسجيل الدخول؛ وإن لم تتلقَّ جوابًا، أجابت قيم اللاعب\nالمحفوظة، وإلا فالقيم العامة للعبة، وأُرسلت قراءة اللاعب مجددًا في قراءة بعد 30 ثانية أو أكثر.`]}),_jsxs(_components.p,{children:[`وحين لا يتلقّى الخادم إصدار لعبة مع الطلب، تُعيد القراءة القيم العامة للعبة، ويعرض Output Log تحذيرًا واحدًا\nلتسجيل الدخول ذاك، مع طريقة الإصلاح: استخرج إصدار اللعبة (`,_jsx(_components.strong,{children:`Tools → Flock → Resolve Game Version`}),`، أو\n`,_jsx(_components.strong,{children:`Project Settings → Plugins → Flock SDK Settings`}),`).`]}),_jsx(_components.p,{children:`وتُخزَّن قراءات الإعدادات مؤقتًا وتُقدَّم من القرص عند تعذّر الوصول إلى الخادم، لكل لاعب على حدة: فيحصل\nاللاعب العائد على قيمه الأخيرة دون اتصال، لا قيم لاعب آخر أبدًا، ويحصل اللاعب الذي لم تُقرأ قيمه عبر\nالإنترنت قط على القيم العامة.`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`patterns`,children:`أنماط الاستخدام`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`مفاتيح الميزات`}),` — اشحن الكود معطّلًا، ثم فعّله للجميع، أو لشريحة معيّنة.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`الضبط`}),` — عدّل معدّلات الإسقاط أو الأسعار أو الصعوبة مباشرةً.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`التجارب`}),` — قدّم نسخًا مختلفة لشرائح مختلفة وقارن بينها عبر `,_jsx(_components.a,{href:`/ar/guides/analytics-and-events`,children:`التحليلات`}),`.`]}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`وفّر دائمًا قيمًا افتراضية آمنة لدى العميل حتى تبقى لعبتك قابلة للعب إذا فشل جلب الإعدادات.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{Scope,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"الإعدادات عن بُعد","description":"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.","href":"/ar/guides/remote-config"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"أنماط الاستخدام","slug":"patterns","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/qwacks/05763fd4e1d53e37/lang-toggle.js"],"subdomain":"qwacks","siteName":"Qwacks","title":"الإعدادات عن بُعد - Qwacks","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/guides/remote-config","matchLevel":1},"ar":{"href":"/ar/guides/remote-config","matchLevel":0}}},"lastModified":"2026-11-11T19:01:51.770Z","originalFileLocation":"ar/guides/remote-config.mdx","locale":"ar"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Qwacks\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"الإعدادات عن بُعد - Qwacks\">\u003cmeta data-mint-head property=\"og:description\" content=\"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Qwacks\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.qwacks.com/ar/guides/remote-config\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qwacks.mintlify.site/_mintlify/api/og/v2?division=%D9%85%D8%AD%D8%AA%D9%88%D9%89+%D8%A7%D9%84%D9%84%D8%B9%D8%A8%D8%A9\u0026amp;title=%D8%A7%D9%84%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF%D8%A7%D8%AA+%D8%B9%D9%86+%D8%A8%D9%8F%D8%B9%D8%AF\u0026amp;description=%D8%BA%D9%8A%D9%91%D8%B1+%D8%B3%D9%84%D9%88%D9%83+%D9%84%D8%B9%D8%A8%D8%AA%D9%83+%D9%88%D8%B4%D8%BA%D9%91%D9%84+%D8%A7%D9%84%D8%AA%D8%AC%D8%A7%D8%B1%D8%A8+%D8%AF%D9%88%D9%86+%D8%A5%D8%B7%D9%84%D8%A7%D9%82+%D9%86%D8%B3%D8%AE%D8%A9+%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9.\u0026amp;theme=7cf102a658812adb3feebdf0\u0026amp;signature=19c9cfaa3f8d448e8765e83398702b07b38ac177f49bb8f29cd8485ab7cd7439\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"الإعدادات عن بُعد - Qwacks\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qwacks.mintlify.site/_mintlify/api/og/v2?division=%D9%85%D8%AD%D8%AA%D9%88%D9%89+%D8%A7%D9%84%D9%84%D8%B9%D8%A8%D8%A9\u0026amp;title=%D8%A7%D9%84%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF%D8%A7%D8%AA+%D8%B9%D9%86+%D8%A8%D9%8F%D8%B9%D8%AF\u0026amp;description=%D8%BA%D9%8A%D9%91%D8%B1+%D8%B3%D9%84%D9%88%D9%83+%D9%84%D8%B9%D8%A8%D8%AA%D9%83+%D9%88%D8%B4%D8%BA%D9%91%D9%84+%D8%A7%D9%84%D8%AA%D8%AC%D8%A7%D8%B1%D8%A8+%D8%AF%D9%88%D9%86+%D8%A5%D8%B7%D9%84%D8%A7%D9%82+%D9%86%D8%B3%D8%AE%D8%A9+%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9.\u0026amp;theme=7cf102a658812adb3feebdf0\u0026amp;signature=19c9cfaa3f8d448e8765e83398702b07b38ac177f49bb8f29cd8485ab7cd7439\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/qwacks/UqcSWN8cDTjx2Nmd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Qwacks\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0099FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.qwacks.com/ar/guides/remote-config\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ar/guides/remote-config.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.qwacks.com/ar/guides/remote-config\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.qwacks.com/guides/remote-config\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.qwacks.com/guides/remote-config\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.qwacks.com/#organization\",\"name\":\"Qwacks\",\"url\":\"https://docs.qwacks.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/icons/qwacks.svg?fit=max\u0026auto=format\u0026n=TGGmq_oWzDacAqHl\u0026q=85\u0026s=2023abb340d6ec576975601525ab2ce9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.qwacks.com#website\",\"name\":\"Qwacks\",\"url\":\"https://docs.qwacks.com\",\"publisher\":{\"@id\":\"https://docs.qwacks.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.qwacks.com/ar/guides/remote-config#webpage\",\"url\":\"https://docs.qwacks.com/ar/guides/remote-config\",\"name\":\"الإعدادات عن بُعد\",\"description\":\"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.\",\"dateModified\":\"2026-11-11T19:01:51.770Z\",\"isPartOf\":{\"@id\":\"https://docs.qwacks.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qwacks.com/ar/guides/remote-config#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qwacks.com/ar/guides/remote-config#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"الميزات\",\"item\":\"https://docs.qwacks.com/ar/guides/players-and-auth\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"الإعدادات عن بُعد\",\"item\":\"https://docs.qwacks.com/ar/guides/remote-config\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.qwacks.com/ar/guides/remote-config#article\",\"headline\":\"الإعدادات عن بُعد\",\"name\":\"الإعدادات عن بُعد\",\"description\":\"غيّر سلوك لعبتك وشغّل التجارب دون إطلاق نسخة جديدة.\",\"url\":\"https://docs.qwacks.com/ar/guides/remote-config\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qwacks.com/ar/guides/remote-config#webpage\"},\"dateModified\":\"2026-11-11T19:01:51.770Z\",\"publisher\":{\"@id\":\"https://docs.qwacks.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.qwacks.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Qwacks\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Qwacks\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/ar/guides/remote-config.md","siteName":"Qwacks","nav":{"global":null,"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/guides/remote-config"}]},{"language":"ar","navbar":{"links":[{"href":"https://www.qwacks.com/pricing","label":"الأسعار"},{"href":"https://github.com/QwackStack/FlockUnitySdk/releases","label":"حزمة Unity"},{"href":"https://github.com/QwackStack/FlockUnrealSdk/releases","label":"حزمة Unreal"}],"primary":{"type":"button","label":"لوحة التحكم","href":"https://flock-saas.qwacks.com"}},"tabs":[{"tab":"Qwacks","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qwacks/icons/qwacks.svg","pages":[{"title":"Qwacks","href":"/ar/welcome"}]},{"tab":"Flock","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qwacks/icons/flock.svg","groups":[{"group":"بدء الاستخدام","pages":[{"title":"Flock","href":"/ar/introduction"},{"title":"البداية السريعة","href":"/ar/quickstart"},{"title":"المصادقة","href":"/ar/authentication"},{"title":"حزمة تطوير Unity","href":"/ar/sdk/unity"},{"title":"حزمة تطوير Unreal","href":"/ar/sdk/unreal"}]},{"group":"المفاهيم","pages":[{"title":"الاستوديوهات والألعاب","href":"/ar/concepts/studios-and-games"},{"title":"الإصدارات","href":"/ar/concepts/versions"},{"title":"اللاعبون","href":"/ar/concepts/players"}]},{"group":"الميزات","pages":[{"group":"اللاعبون","pages":[{"title":"تسجيل الدخول","href":"/ar/guides/players-and-auth"},{"title":"ربط الحسابات","href":"/ar/guides/account-linking"},{"title":"بيانات اللاعب","href":"/ar/guides/player-data"},{"title":"الحظر","href":"/ar/guides/bans"}]},{"group":"التقدّم","pages":[{"title":"الإنجازات","href":"/ar/guides/achievements"},{"title":"لوحات الصدارة","href":"/ar/guides/leaderboards"}]},{"group":"الاقتصاد والمدفوعات","pages":[{"title":"العملات والمحافظ","href":"/ar/guides/currencies-and-wallets"},{"title":"المتاجر والمخزون","href":"/ar/guides/shops-and-inventory"},{"title":"الشراء داخل التطبيق","href":"/ar/guides/real-money-purchases"},{"title":"الدفع عبر الويب","description":"بِع عناصر المتجر بمال حقيقي على Windows وmacOS وLinux وWebGL عبر Stripe أو Tap أو Moyasar.","href":"/ar/guides/web-checkout"}]},{"group":"محتوى اللعبة","pages":[{"title":"الإعدادات عن بُعد","href":"/ar/guides/remote-config"},{"title":"تحديثات اللعبة","description":"أطلق تغييرات تدريجية على إعدادات إصدار اللعبة على هيئة تحديثات.","href":"/ar/guides/game-patches"},{"title":"ملفات اللعبة","href":"/ar/guides/assets"}]},{"group":"التواصل مع اللاعبين","pages":[{"title":"شرائح اللاعبين","href":"/ar/guides/segments"},{"title":"الإشعارات","href":"/ar/guides/notifications"}]},{"group":"التحليلات","pages":[{"title":"التحليلات والأحداث","href":"/ar/guides/analytics-and-events"},{"title":"تعريفات المقاييس","href":"/ar/guides/metric-definitions"},{"title":"تنبيهات المطوّرين","href":"/ar/guides/developer-alerts"}]},{"group":"اللعب الجماعي","pages":[{"title":"اللعب الجماعي","sidebarTitle":"نظرة عامة","href":"/ar/guides/multiplayer"},{"title":"الفرق","href":"/ar/guides/parties"},{"title":"مطابقة اللاعبين","href":"/ar/guides/matchmaking"},{"title":"الجلسات","href":"/ar/guides/sessions"},{"title":"اتصال اللاعبين","href":"/ar/guides/connecting-players"}]}]},{"group":"المرجع","pages":[{"title":"سجل التغييرات","href":"/ar/changelog"}]}]},{"tab":"Protokite","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qwacks/icons/protokite.svg","pages":[{"title":"Protokite","href":"/ar/protokite/getting-started"}]},{"tab":"Data Duck","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qwacks/icons/data-duck.svg","pages":[{"title":"Data Duck","href":"/ar/data-duck/getting-started"}]}]}]},"basePath":"","title":"الإعدادات عن بُعد - Qwacks","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-u3J1-UOn.js","DynamicMarkdown-B-f2cqXQ.js","zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}