پرش به مطلب اصلی

config.json

توضیحات

  • config.json فایل پیکربندی سرور است که به شما امکان تغییر انواع مختلف تنظیمات سرور open.mp خود را می‌دهد.
  • همچنان می‌توانید از فایل server.cfg در سرور open.mp خود استفاده کنید، اما استفاده از config.json توصیه می‌شود زیرا تنظیمات بیشتری دارد!



نکته

می‌توانید به راحتی server.cfg خود را به config.json تبدیل کنید.

یک command prompt را در دایرکتوری سرور خود باز کنید و دستور زیر را تایپ کنید، سپس Enter را فشار دهید:

# Windows
omp-server --dump-config

# Linux
./omp-server --dump-config

نکته: اگر فایل config.json در دایرکتوری دارید، ممکن است قبل از اجرای دستور بالا نیاز به حذف آن باشد.


نکته

برای تولید config.json پیش‌فرض دستور زیر را وارد کنید:

# Windows
omp-server --default-config

# Linux
./omp-server --default-config

اعلان

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
announcebooltrueتعیین می‌کند که آیا سرور باید در masterlist open.mp اعلان شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.

مدل‌های سفارشی (Artwork)

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
artwork.cdnstringآدرس http برای سرور مدل راه دور.
artwork.enablebooltrueتعیین می‌کند که آیا سرور از مدل‌های سفارشی از پوشه /models استفاده کند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
artwork.models_pathstringmodelsمسیری که مدل‌های سفارشی در آن قرار دارند.
artwork.portint7777
artwork.web_server_bindstring

فیلتر چت

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
chat_input_filterbooltrueفیلتر ورودی چت را کنترل می‌کند. برای استفاده از کاراکترهایی مثل % در چت غیرفعال کنید. همچنین می‌توانید از تابع ToggleChatTextReplacement استفاده کنید.

اطلاعات Query سرور

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
enable_querybooltrueتعیین می‌کند که آیا اطلاعات سرور باید در مرورگر سرور نمایش داده شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن. بازیکنان همچنان می‌توانند به سروری که query را غیرفعال کرده بپیوندند، اما مرورگر سرور هیچ اطلاعاتی نمایش نخواهد داد.

بازی

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
game.allow_interior_weaponsbooltrueتعیین می‌کند که آیا استفاده از سلاح‌ها در interior ها مجاز است یا نه. 'true' برای فعال کردن سلاح‌ها در interior ها، 'false' برای غیرفعال کردن.
game.chat_radiusfloat200.0محدودیت شعاع برای چت تنظیم کنید. فقط بازیکنانی که در فاصله مشخصی از بازیکن باشند پیغام آنها را در چت خواهند دید. همچنین فاصله‌ای که بازیکن می‌تواند سایر بازیکنان را در نقشه در همان فاصله ببیند را تغییر می‌دهد.
game.death_drop_amountint0
game.gravityfloat0.008گرانش سراسری که سرور استفاده می‌کند.
game.group_player_objectsboolfalseاشیاء per-player و سراسری یک pool ID را در SA:MP به اشتراک می‌گذارند. اگر یک ID به بازیکنان "اختصاص" داده شود هر بازیکن می‌تواند شی منحصربه‌فردی با آن ID داشته باشد، اما اگر حداکثر اشیاء سراسری را ایجاد کنید نمی‌توانید پس از آن هیچ شی per-player ایجاد کنید.
اگر گروه‌بندی اشیاء بازیکن فعال باشد سرور سعی خواهد کرد slot شی بازیکن قبلاً استفاده شده توسط بازیکن دیگری را پیدا کند.
game.lag_compensation_modeint10: جبران تأخیر را کاملاً غیرفعال کن.

1: جبران تأخیر را کاملاً فعال کن.

2: فقط جبران تأخیر موقعیت را فعال کن. این یعنی چرخش بازیکن برای جبران تأخیر در نظر گرفته نخواهد شد.
game.mapstringنام نقشه‌ای که در مرورگر سرور ظاهر می‌شود. این می‌تواند هر چیزی باشد، مثلاً My Stunt Map.
game.modestringمودی که در مرورگر سرور نشان داده خواهد شد. استفاده از SetGameModeText همین تأثیر را دارد و مقدار استفاده شده در config.json را نادیده می‌گیرد. اگر چندین گیم مود دارید که نیاز به متن‌های مختلف گیم مود دارند، از آن تابع استفاده کنید.
game.nametag_draw_radiusfloat70.0حداکثر فاصله برای نمایش نام بازیکنان را تنظیم کنید.
game.player_marker_draw_radiusfloat250.0شعاع marker برای همه بازیکنان را تنظیم کنید.
game.player_marker_modeint10: حالت Marker خاموش

1: حالت Marker سراسری

2: حالت Marker stream شده

حالت‌های Marker
game.timeint12زمان سراسری که سرور استفاده می‌کند و در مرورگر سرور نشان داده خواهد شد.
game.use_all_animationsboolfalseاجازه استفاده از انیمیشن‌های گم شده از برخی نسخه‌ها. 'true' برای فعال کردن همه انیمیشن‌ها، 'false' برای غیرفعال کردن.
game.use_chat_radiusboolfalseفعال/غیرفعال کردن شعاع چت.
game.use_entry_exit_markersbooltrueفعال/غیرفعال کردن همه ورودی‌ها و خروجی‌های interior در بازی (فلش‌های زرد در درها).
game.use_instagibboolfalseinstagib متغیر قابل پیکربندی قدیمی است که دیگر در کلاینت sa-mp در دسترس نیست، احتمالاً نام آن از بازی Quake گرفته شده، instagib در اصل instakill یا instant kill است، ویژگی one shot one kill را در بازی فعال می‌کند (در حال حاضر در دسترس نیست زیرا sa-mp این را در سمت کلاینت حذف کرده)
game.use_manual_engine_and_lightsboolfalseکنترل موتورها و چراغ‌های خودرو. false: از خودکار روشن/خاموش شدن موتور توسط بازی وقتی بازیکنان وارد/خارج خودروها می‌شوند و روشن شدن خودکار چراغ‌جلو در تاریکی جلوگیری می‌کند.
game.use_nametag_losbooltrueLine-Of-Sight nametag ها، نوارهای سلامتی و زره بالای بازیکنان را کنترل می‌کند.
game.use_nametagsbooltrueرسم nametag ها، نوارهای سلامتی و زره بالای بازیکنان را کنترل می‌کند.
game.use_player_marker_draw_radiusboolfalsemarker های بازیکن (blip ها در رادار) را کنترل می‌کند.
game.use_player_ped_animsboolfalseاز انیمیشن راه رفتن استاندارد بازیکن (انیمیشن اسکین CJ) به جای انیمیشن‌های سفارشی برای هر اسکین استفاده می‌کند (مثلاً اسکیت برای اسکین‌های اسکیت‌باز).
game.use_stunt_bonusesbooltrueپاداش‌های stunt را برای همه بازیکنان فعال یا غیرفعال می‌کند. اگر فعال باشد، بازیکنان هنگام انجام stunt در خودرو (مثلاً wheelie) پاداش پولی دریافت خواهند کرد.
game.use_vehicle_friendly_fireboolfalseآتش دوستانه برای خودروهای تیمی را فعال کنید. بازیکنان نخواهند توانست خودروهای هم‌تیمی‌هایشان را آسیب برسانند.
game.use_zone_namesboolfalseامکان روشن کردن نام‌های zone / area مثل متن "Vinewood" یا "Doherty" در پایین-راست صفحه هنگام ورود به آن منطقه را می‌دهد.
game.validate_animationsbooltrueانیمیشن‌ها را برای بازیکنان اعتبارسنجی کنید.
game.vehicle_respawn_timeint10000زمان respawn خودروها را به میلی‌ثانیه تنظیم کنید. (پیش‌فرض 10 ثانیه)
game.weatherint10آب و هوای سراسری که سرور استفاده می‌کند و در مرورگر سرور نشان داده خواهد شد.

زبان

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
languagestringزبانی که در مرورگر سرور ظاهر می‌شود. بازیکنان می‌توانند از این برای فیلتر کردن سرورها بر اساس زبان در مرورگر سرور استفاده کنند.

لاگ‌گیری

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
logging.enablebooltrueفعال/غیرفعال کردن لاگ‌گیری.
logging.filestringlog.txtمسیر و نام فایل برای ذخیره لاگ سرور.
logging.log_chatbooltrueتعیین می‌کند که آیا چت بازیکنان باید در کنسول سرور نشان داده شود. برای جلوگیری از پر شدن لاگ یا اگر راه‌حل لاگ‌گیری چت اسکریپتی دیگری دارید مفید است. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.log_connection_messagesbooltrueفعال/غیرفعال کردن پیام‌های join بازیکن و NPC.
logging.log_cookiesboolfalseلاگ‌گیری cookie های اتصال درخواست شده توسط بازیکنان تازه متصل شونده را کنترل می‌کند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.log_deathsbooltrueتعیین می‌کند که آیا مرگ بازیکنان باید در کنسول سرور نشان داده شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.log_queriesboolfalseتعیین می‌کند که آیا همه query هایی که توسط بازیکنان به سرور ارسال می‌شود باید لاگ شوند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن. در طول حمله DDoS بسیار مفید است.
logging.log_sqliteboolfalseخطاهای تابع sqlite DB_* را در کنسول سرور لاگ می‌کند.
logging.log_sqlite_queriesboolfalseهمه فراخوانی‌های sqlite DB_Query شامل رشته query را لاگ می‌کند.
logging.timestamp_formatstring[%Y-%m-%dT%H:%M:%S%z]فرمت timestamp که باید استفاده شود. فرمت بر اساس فرمت strftime از C/C++ است. در اینجا چند مثال آورده شده:

[%H:%M:%S] این فقط زمان را نمایش می‌دهد.

[%d/%m/%Y %H:%M:%S] این تاریخ را به فرمت dd/mm/yyyy نشان می‌دهد و سپس زمان به فرمت hour:minute:second.
logging.use_prefixbooltrueتعیین می‌کند که آیا prefix هایی مثل [Info] باید با هر پیغام کنسول چاپ شوند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.use_timestampbooltrueتعیین می‌کند که آیا timestamp باید با هر پیغام کنسول چاپ شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.

NPC ها و بازیکنان

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
max_botsint0حداکثر مقدار NPC هایی که سرور شما می‌تواند نگه دارد. با تغییر این عدد می‌توانید تعداد slot های بازیکن قابل استفاده توسط NPC ها را تغییر دهید.
max_playersint50حداکثر مقدار بازیکنانی که سرور شما می‌تواند نگه دارد. با تغییر این عدد می‌توانید تعداد بازیکنانی که می‌توانند وارد سرور شوند را تغییر دهید. حداکثر 1000 و حداقل 1 است.

Hostname

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
namestringopen.mp serverنامی که در مرورگر سرور و زمانی که بازیکن به سرور متصل می‌شود نشان داده خواهد شد.

شبکه

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
network.acks_limitint3000
network.aiming_sync_rate*int30زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام شلیک سلاح به‌روزرسانی کند.
network.allow_037_clientsbooltrueتعیین می‌کند که آیا بازیکنان با کلاینت 0.3.7 مجاز به پیوستن به سرور هستند.
network.use_omp_encryptionboolfalseرمزگذاری بسته open.mp را برای حفاظت اضافی کنترل می‌کند (پروتکل پیش‌فرض همچنان در کنار آن کار می‌کند).
network.bindstringآدرس IP که سرور باید استفاده کند. سرور مجبور خواهد شد از این آدرس IP به جای انتخاب خودکار آدرس IP آزاد استفاده کند. این آدرس IP باید با یکی از آدرس‌های اختصاص یافته به کارت شبکه در سرور مطابقت داشته باشد. برای اجرای چندین سرور در همان پورت در همان جعبه مفید است.
network.cookie_reseed_timeint300000زمان به میلی‌ثانیه که مقدار seed cookie اتصال به‌روزرسانی می‌شود.
network.grace_periodint5000این دوره مهلت برای اجازه اتصالات نامحدود از همان IP پس از شروع سرور است، عمدتاً برای NPC ها استفاده می‌شود.
به طور پیش‌فرض: 5 ثانیه
network.http_threadsint50
network.in_vehicle_sync_rate*int30زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام در خودرو بودن به‌روزرسانی کند.
network.limits_ban_timeint60000زمان ban raknet را برای بسته‌های اتصال بد به میلی‌ثانیه تنظیم می‌کند. (زمانی که حد acks/message به آن رسیده باشد.)
network.message_hole_limitint3000تنظیم سطح شبکه برای مقابله با حملات DoS.
network.messages_limitint500حداکثر تعداد پیام‌هایی که کاربر می‌تواند در ثانیه ارسال کند.
network.minimum_connection_timeint0زمان به میلی‌ثانیه که سرور قبل از پذیرش اتصال ورودی دیگر منتظر خواهد ماند. توصیه نمی‌شود از این متغیر استفاده کنید مگر اینکه سرور شما تحت حمله connection flood باشد.
network.mtuint576آن را در مقدار پیش‌فرض نگه دارید، واقعاً نیاز یا نباید آن را تغییر دهید اگر نمی‌دانید این چیست، زیرا اگر نمی‌دانید، پس چیزی در سرور شما نیست که نیاز به MTU بالاتر داشته باشد، اما اگر همچنان علاقه‌مندید: https://en.wikipedia.org/wiki/Maximum_transmission_unit
network.multiplierint10
network.on_foot_sync_rate*int30زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام پیاده بودن به‌روزرسانی کند.
network.player_marker_sync_rateint2500زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام حرکت به‌روزرسانی کند.
network.player_timeoutint10000زمان به میلی‌ثانیه که بعد از آن بازیکن timeout خواهد شد وقتی هیچ داده‌ای به سرور ارسال نکند.
network.portint7777پورتی که سرور باید استفاده کند. برای اینکه بازیکنان از خارج LAN شما به سرور بپیوندند نیاز به Port Forward دارید.
network.public_addrstringبرخی دستگاه‌هایی که سرور روی آنها اجرا می‌کنید می‌توانند IP های مختلفی داشته باشند، این استفاده می‌شود تا اگر آدرسی که در config bind تنظیم کرده‌اید متفاوت است، یکی جدید تنظیم کنید. این متغیر config فقط برای سرورهای DL استفاده می‌شود، زیرا در open.mp، webserver برای دانلود مدل‌ها میزبانی خواهد کرد
network.stream_radiusfloat200.0فاصله در صفحه X,Y که بازیکنان entities سرور را stream خواهند کرد. حداکثر 400.0 و حداقل 50.0 است. مقادیر بالاتر باعث می‌شود بازیکنان entities سرور را در فاصله بیشتری ببینند، اما نیاز به پردازش بیشتر کلاینت و احتمالاً پهنای باند بیشتری دارد.
network.stream_rateint1000زمان به میلی‌ثانیه قبل از اینکه stream شدن entities سرور برای هر بازیکن دوباره تست شود. حداکثر 5000 و حداقل 500 است. مقادیر پایین‌تر پردازش سرور را افزایش می‌دهد زیرا باید شرایط streaming را برای هر بازیکن بیشتر بررسی کند.
network.time_sync_rateint30000نرخی که زمان بازی بازیکن به میلی‌ثانیه به‌روزرسانی می‌شود.
network.use_lan_modeboolfalseمتغیر منسوخ شده، تأثیری ندارد.

[*] مقادیر پایین‌تر aiming_sync_rate، in_vehicle_sync_rate و on_foot_sync_rate عملکرد sync را بهبود می‌بخشد، اما پهنای باند بیشتری استفاده می‌کند.

قفل سرور

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
passwordstringرمز عبور استفاده شده برای قفل کردن سرور. هنگام استفاده از این، فقط بازیکنانی که این رمز عبور را می‌دانند خواهند توانست به سرور بپیوندند.

Pawn

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
pawn.legacy_pluginslist, string[]فایل .dll یا .so در پوشه /plugins که سرور باید برای اجرا به عنوان پلاگین استفاده کند. پلاگین‌ها اسکریپت‌هایی هستند که برای بهبود گیم مود و فیلتر اسکریپت طراحی شده‌اند.
مثال: ["mysql", "streamer"]
pawn.main_scriptslist, string["test 1"]فایل .amx در پوشه /gamemodes که سرور باید برای اجرا به عنوان گیم مود استفاده کند.
pawn.side_scriptslist, string[]فایل .amx در پوشه /filterscripts که سرور باید برای اجرا به عنوان فیلتر اسکریپت استفاده کند. فیلتر اسکریپت‌ها اسکریپت‌هایی هستند که در پس‌زمینه گیم مود شما اجرا می‌شوند. آنها برای اضافه کردن موارد اضافی به سرور بدون ویرایش گیم مود هستند. اگر می‌خواهید ویژگی خاصی را به بیش از یک گیم مود منتقل کنید بسیار مفید است.
مثال: ["filterscripts/Race_System"]

RCON

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
rcon.allow_teleportboolfalseتعیین می‌کند که آیا ادمین‌های RCON زمانی که waypoint تنظیم می‌کنند به آن تلپورت خواهند شد. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
rcon.enableboolfalseتعیین می‌کند که آیا ویژگی Remote Console باید استفاده شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
rcon.passwordstringchangemeرمز عبور استفاده شده برای مدیریت سرور و استفاده از remote console (rcon). باید مطمئن شوید که آن را به چیزی سخت برای شکستن تغییر دهید تا دیگران نتوانند کنترل سرور شما را در دست بگیرند. سرور شما شروع نخواهد شد اگر changeme رمز عبور RCON باشد!

Sleep و Tick ها

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
sleepfloat5.0زمان به میلی‌ثانیه که thread اصلی open.mp و شبکه raknet در طول هر چرخه sync به صورت بیکار "خواب" خواهد بود. مقادیر بالاتر پردازش سرور را کاهش می‌دهد، اما کیفیت sync را کم می‌کند. مقادیر پایین‌تر پردازش سرور را افزایش می‌دهد، اما کیفیت sync را بهبود می‌بخشد. تغییر این مقدار توصیه نمی‌شود مگر اینکه تعداد بازیکنان شما خیلی زیاد باشد و مشکلات پایداری fps سرور داشته باشید.
use_dyn_ticksbooltrueconfig dynticks در اصل برای نگه داشتن tickrate سرور در تعداد ثابت با استفاده از cpu بیشتر برای پوشاندن فاصله در صورت وجود هر گونه افت است.
با استفاده از مقدار sleep ارائه شده محاسبه می‌شود پس اگر sleep برابر 5 باشد، تعداد tick ثابت 1000 / 5 = 200 tick در ثانیه خواهد بود.
open.mp مقدار sleep داخلی را بر اساس زمان اجرای کد هر tick در پرواز تغییر می‌دهد، فقط برای نگه داشتن آن در 200 tick، و sleep پایین‌تر یعنی استفاده cpu بیشتر (که اگر کد سرور خوب نوشته شده باشد تفاوت عظیمی نیست)

Web URL

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
websitestringopen.mpوبسایتی که مردم می‌توانند بازدید کنند تا اطلاعات بیشتری در مورد سرور کسب کنند.

Discord

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
discord.invitestringhttps://discord.gg/sampآدرس discord سرور شما که در لانچر omp ظاهر می‌شود.

بنرها

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
banners.lightstringآدرس url بنر روشن سرور شما که در لانچر omp ظاهر می‌شود.
banners.darkstringآدرس url بنر تاریک سرور شما که در لانچر omp ظاهر می‌شود.

لوگو سرور

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
logostringآدرس url لوگوی سرور شما که در لانچر omp و وضعیت discord ظاهر می‌شود.


یادداشت
  • مقادیری که به عنوان "فقط خواندنی" علامت‌گذاری شده‌اند نمی‌توانند در طول runtime تغییر کنند. همه مقادیر دیگر می‌توانند (موقتاً) با ارسال آنها به SendRconCommand یا از طریق کنسول سرور تغییر کنند.

  • مقادیری که به عنوان "قانون" علامت‌گذاری شده‌اند در مرورگر سرور در بخش Rules نمایش داده می‌شوند.